如何设置的ArrayList<&定制GT;在在延伸的ListView另一片段ListView的数据? [英] How to set the ArrayList<custom> data in to the ListView in another fragment which extends listView?

查看:223
本文介绍了如何设置的ArrayList<&定制GT;在在延伸的ListView另一片段ListView的数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何设置ArrayList中的数据到另一个片段延伸的ListView ListView的?

帮助将是各位专家那里pciated多少AP $ P $。

自定义ArrayList中需要整型,字符串,字符串。
我得到两个EditText上的用户输入,并将其添加到此ArrayList。
当用户重新进入,它应该保持它添加到ArrayList

目标是从用户得到的所有条目,显示它在接下来的片段一个ListView。
但只有从ArrayList中成String数组的使用作为数据源为ArrayAdapter两个字符串。
所以覆盖类diarylogs的toSting方法。
我可以看到,同时系统输出的ArrayList中的价值。
但是,一旦我setListAdapter,应用程序崩溃。不明白我做错了。

更新

 类MainActivity延伸活动//静态变量
公共静态的ArrayList< D​​iaryLogs>测试;
公共静态INT周一= 0;

类DiaryLogs

 公共类DiaryLogs {    串timeEntry,entryEntered;
    日整型;    //单个构造函数整数,两个字符串
    公共DiaryLogs(日整型,字符串timeEntry,字符串entryEntered){
        超();
        this.day =天;
        this.timeEntry = timeEntry;
        this.entryEntered = entryEntered;    }    公共字符串getTimeEntry(){
        返回timeEntry;
    }    公共无效setTimeEntry(字符串timeEntry){
        this.timeEntry = timeEntry;
    }    公共字符串getEntryEntered(){
        返回entryEntered;
    }    公共无效setEntryEntered(字符串entryEntered){
        this.entryEntered = entryEntered;
    }    公众诠释getDay(){
        回天;
    }    公共无效setDay(INT天){
        this.day =天;
    }    @覆盖
    公共字符串的toString(){        返回timeEntry +\\ n+ entryEntered;
    }
}

类Monday_fragment

 公共类Monday_fragment扩展片段{    公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,
            捆绑savedInstanceState){        返回inflater.inflate(R.layout.monday_fragment,集装箱,FALSE);    }    @覆盖
    公共无效onViewCreated(查看视图,捆绑savedInstanceState){
        currentDateTime();
        super.onViewCreated(查看,savedInstanceState);    }    公共无效currentDateTime(){
        的EditText timeText =(EditText上)getView()。findViewById(
                R.id.dateTimeEText);
        SimpleDateFormat的DF =新的SimpleDateFormat(D / M / YYYY:H:M);
        字符串日期时间= df.format(Calendar.getInstance()的getTime());
        timeText.setText(DATETIME);
    }    @覆盖
    公共无效调用onStart(){        按钮saveBtn =(按钮)getView()
                .findViewById(R.id.saveDiaryEntryBtn);
        saveBtn.setOnClickListener(新View.OnClickListener(){            @覆盖
            公共无效的onClick(视图v){
                // TODO自动生成方法存根                的EditText timeText =(EditText上)getView()。findViewById(
                        R.id.dateTimeEText);                的EditText entryText =(EditText上)getView()。findViewById(
                        R.id.diaryEntryEText);
                字符串timeEntry = timeText.getText()的toString()。                。字符串entryEntered = entryText.getText()的toString();                MainActivity.test =新的ArrayList< D​​iaryLogs>();                MainActivity.test.add(新DiaryLogs(MainActivity.Monday,
                        timeEntry,entryEntered));            }        }        );        按钮showBtn =(按钮)getView()。findViewById(
                R.id.showDiaryEntriesBtn);
        showBtn.setOnClickListener(新View.OnClickListener(){            @覆盖
            公共无效的onClick(视图v){
                // TODO自动生成方法存根
                FragmentManager fragmentManager = getFragmentManager();
                FragmentTransaction fragmentTransaction = fragmentManager
                        .beginTransaction();
                Monday_list_fragment MLF =新Monday_list_fragment();
                fragmentTransaction.replace(android.R.id.content,MLF);
                fragmentTransaction.commit();            }
        });        super.onStart();
    }}

类Monday_list_fragment

 公共类Monday_list_fragment扩展ListFragment {    @覆盖
    公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,
            捆绑savedInstanceState){
        // TODO自动生成方法存根        吹气回报
                .inflate(R.layout.monday_list_fragment,集装箱,FALSE);    }    @覆盖
    公共无效onViewCreated(查看视图,捆绑savedInstanceState){        super.onViewCreated(查看,savedInstanceState);
    }    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){        super.onCreate(savedInstanceState);的System.out.println(MainActivity.test); //测试:如果值可以看出        ArrayAdapter< D​​iaryLogs> arrayAdapter =新ArrayAdapter< D​​iaryLogs>(
                getActivity(),
                android.R.layout.simple_list_item_1,MainActivity.test
                );
        setListAdapter(arrayAdapter); //一旦我设置适配器崩溃    }}

布局XML文件:monday_list_fragment.xml

 <?XML版本=1.0编码=UTF-8&GT?;
<的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT
    机器人:方向=垂直>    < ListView控件
        机器人:ID =@ ID /安卓名单
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:smoothScrollbar =真正的>
    < /&的ListView GT;    <的LinearLayout
        机器人:layout_width =match_parent
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentBottom =真正的>        <按钮
            机器人:ID =@ + ID / returnBtn
            机器人:layout_width =WRAP_CONTENT
            机器人:layout_height =WRAP_CONTENT
            机器人:文字=@字符串/ return_mon_Btn
            安卓的onClick =monClick>
        < /按钮>
    < / LinearLayout中>
< / RelativeLayout的>

的logcat

  04-11 23:45:53.992:E / AndroidRuntime(10006):致命异常:主要
04-11 23:45:53.992:E / AndroidRuntime(10006):工艺:com.example.s0217980_diary,PID:10006
04-11 23:45:53.992:E / AndroidRuntime(10006):了java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.s0217980_diary / com.example.s0217980_diary.MainActivity}:android.view.InflateException:二进制XML文件行#41:错误充气类片段
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.app.ActivityThread.access $ 800(ActivityThread.java:135)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.os.Handler.dispatchMessage(Handler.java:102)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.os.Looper.loop(Looper.java:136)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.app.ActivityThread.main(ActivityThread.java:5017)
04-11 23:45:53.992:E / AndroidRuntime(10006):在java.lang.reflect.Method.invokeNative(本机方法)
04-11 23:45:53.992:E / AndroidRuntime(10006):在java.lang.reflect.Method.invoke(Method.java:515)
04-11 23:45:53.992:E / AndroidRuntime(10006):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)
04-11 23:45:53.992:E / AndroidRuntime(10006):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-11 23:45:53.992:E / AndroidRuntime(10006):在dalvik.system.NativeStart.main(本机方法)
04-11 23:45:53.992:E / AndroidRuntime(10006):android.view.InflateException:二进制XML文件行#41:错误充气类片段产生的原因
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.view.LayoutInflater.inflate(LayoutInflater.java:492)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.view.LayoutInflater.inflate(LayoutInflater.java:397)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.view.LayoutInflater.inflate(LayoutInflater.java:353)
04-11 23:45:53.992:E / AndroidRuntime(10006):在com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.app.Activity.setContentView(Activity.java:1929)
04-11 23:45:53.992:E / AndroidRuntime(10006):在com.example.s0217980_diary.MainActivity.onCreate(MainActivity.java:52)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.app.Activity.performCreate(Activity.java:5231)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
04-11 23:45:53.992:E / AndroidRuntime(10006):... 11个
04-11 23:45:53.992:E / AndroidRuntime(10006):致:显示java.lang.NullPointerException
04-11 23:45:53.992:E / AndroidRuntime(10006):在com.example.s0217980_diary.Monday_list_fragment.onCreate(Monday_list_fragment.java:45)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.app.Fragment.performCreate(Fragment.java:1678)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:859)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1040)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1142)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.app.Activity.onCreateView(Activity.java:4786)
04-11 23:45:53.992:E / AndroidRuntime(10006):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
04-11 23:45:53.992:E / AndroidRuntime(10006):...... 21多
04-11 23:48:11.294:D / dalvikvm(10069):GC_FOR_ALLOC释放71K,6%免费3267K / 3448K,暂停16毫秒,总24ms
04-11 23:48:11.364:D / AndroidRuntime(10069):关闭VM
04-11 23:48:11.364:W / dalvikvm(10069):主题ID = 1:螺纹未捕获的异常退出(组= 0xb0c9db20)
04-11 23:48:11.374:E / AndroidRuntime(10069):致命异常:主要
04-11 23:48:11.374:E / AndroidRuntime(10069):工艺:com.example.s0217980_diary,PID:10069
04-11 23:48:11.374:E / AndroidRuntime(10069):了java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.s0217980_diary / com.example.s0217980_diary.MainActivity}:android.view.InflateException:二进制XML文件行#41:错误充气类片段
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.app.ActivityThread.access $ 800(ActivityThread.java:135)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.os.Handler.dispatchMessage(Handler.java:102)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.os.Looper.loop(Looper.java:136)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.app.ActivityThread.main(ActivityThread.java:5017)
04-11 23:48:11.374:E / AndroidRuntime(10069):在java.lang.reflect.Method.invokeNative(本机方法)
04-11 23:48:11.374:E / AndroidRuntime(10069):在java.lang.reflect.Method.invoke(Method.java:515)
04-11 23:48:11.374:E / AndroidRuntime(10069):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)
04-11 23:48:11.374:E / AndroidRuntime(10069):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-11 23:48:11.374:E / AndroidRuntime(10069):在dalvik.system.NativeStart.main(本机方法)
04-11 23:48:11.374:E / AndroidRuntime(10069):android.view.InflateException:二进制XML文件行#41:错误充气类片段产生的原因
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.view.LayoutInflater.inflate(LayoutInflater.java:492)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.view.LayoutInflater.inflate(LayoutInflater.java:397)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.view.LayoutInflater.inflate(LayoutInflater.java:353)
04-11 23:48:11.374:E / AndroidRuntime(10069):在com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.app.Activity.setContentView(Activity.java:1929)
04-11 23:48:11.374:E / AndroidRuntime(10069):在com.example.s0217980_diary.MainActivity.onCreate(MainActivity.java:52)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.app.Activity.performCreate(Activity.java:5231)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
04-11 23:48:11.374:E / AndroidRuntime(10069):... 11个
04-11 23:48:11.374:E / AndroidRuntime(10069):致:显示java.lang.NullPointerException
04-11 23:48:11.374:E / AndroidRuntime(10069):在com.example.s0217980_diary.Monday_list_fragment.onCreate(Monday_list_fragment.java:45)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.app.Fragment.performCreate(Fragment.java:1678)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:859)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1040)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1142)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.app.Activity.onCreateView(Activity.java:4786)
04-11 23:48:11.374:E / AndroidRuntime(10069):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
04-11 23:48:11.374:E / AndroidRuntime(10069):...... 21多


解决方案

如果你有像ArrayList的一个数组,你不必把它解压并提取​​你想要的东西的字符串,并将其添加到另一个阵列只是把它输入到列表显示。只是覆盖toString()方法在你DiaryLogs类,并与您选择(例如timeEntry&安培; entryEntered)的字符串返回。像

  //类DiaryLogs
类DiaryLogs {
    ...
    @覆盖
    公众的toString(){
        返回日期时间+ - + entryName;
    }
    ...
}//您的活动
ArrayList的< D​​iaryLogs> diaryLogs =新的ArrayList< D​​iaryLogs>();
diaryLogs.add(新DiaryLogs(1,2014年4月14日,输入1));
diaryLogs.add(新DiaryLogs(1,2014年4月14日,输入2));
diaryLogs.add(新DiaryLogs(1,2014年4月14日,条目3));yourListView.setAdapter(新ArrayAdapter(这一点,android.R.layout.simple_list_item_1,diaryLogs));

yourListView显然是您正在使用的列表视图。

How to set the ArrayList data in to the ListView in another fragment which extends listView?

Help will be much appreciated from you experts out there.

Custom ArrayList takes int, string, string. I get the user input from two EditText's and add them to this ArrayList. When user re-enters, it should keep adding it to the ArrayList.

Objective is to get all the entries from user and show it in a ListView in the next fragment. But only the two Strings from the ArrayList into String array for the use as datasource for ArrayAdapter. So overridden the toSting method in class diarylogs. I can see the value from the ArrayList while sysout. But, once i setListAdapter, the app crashes. Cannot understand what i am doing wrong.

UPDATE

Class MainActivity extends Activity

//Static variable
public static ArrayList<DiaryLogs> test;
public static int Monday=0;

Class DiaryLogs

public class DiaryLogs {

    String timeEntry, entryEntered;
    int day;

    // single constructor that takes an integer and two string
    public DiaryLogs(int day, String timeEntry, String entryEntered) {
        super();
        this.day = day;
        this.timeEntry = timeEntry;
        this.entryEntered = entryEntered;

    }

    public String getTimeEntry() {
        return timeEntry;
    }

    public void setTimeEntry(String timeEntry) {
        this.timeEntry = timeEntry;
    }

    public String getEntryEntered() {
        return entryEntered;
    }

    public void setEntryEntered(String entryEntered) {
        this.entryEntered = entryEntered;
    }

    public int getDay() {
        return day;
    }

    public void setDay(int day) {
        this.day = day;
    }

    @Override
    public String toString() {

        return timeEntry + "\n" + entryEntered;


    }
}

Class Monday_fragment

public class Monday_fragment extends Fragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        return inflater.inflate(R.layout.monday_fragment, container, false);

    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        currentDateTime();
        super.onViewCreated(view, savedInstanceState);

    }

    public void currentDateTime() {
        EditText timeText = (EditText) getView().findViewById(
                R.id.dateTimeEText);
        SimpleDateFormat df = new SimpleDateFormat("d/M/yyyy:H:m");
        String dateTime = df.format(Calendar.getInstance().getTime());
        timeText.setText(dateTime);
    }

    @Override
    public void onStart() {

        Button saveBtn = (Button) getView()
                .findViewById(R.id.saveDiaryEntryBtn);
        saveBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                EditText timeText = (EditText) getView().findViewById(
                        R.id.dateTimeEText);

                EditText entryText = (EditText) getView().findViewById(
                        R.id.diaryEntryEText);
                String timeEntry = timeText.getText().toString();

                String entryEntered = entryText.getText().toString();

                MainActivity.test = new ArrayList<DiaryLogs>();

                MainActivity.test.add(new DiaryLogs(MainActivity.Monday,
                        timeEntry, entryEntered));

            }

        }

        );

        Button showBtn = (Button) getView().findViewById(
                R.id.showDiaryEntriesBtn);
        showBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                FragmentManager fragmentManager = getFragmentManager();
                FragmentTransaction fragmentTransaction = fragmentManager
                        .beginTransaction();
                Monday_list_fragment mlf = new Monday_list_fragment();
                fragmentTransaction.replace(android.R.id.content, mlf);
                fragmentTransaction.commit();

            }
        });

        super.onStart();
    }

}

Class Monday_list_fragment

public class Monday_list_fragment extends ListFragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub

        return inflater
                .inflate(R.layout.monday_list_fragment, container, false);

    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {

        super.onViewCreated(view, savedInstanceState);


    }

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

System.out.println(MainActivity.test); //test: if value can be seen

        ArrayAdapter<DiaryLogs> arrayAdapter = new ArrayAdapter<DiaryLogs>(
                getActivity(), 
                android.R.layout.simple_list_item_1, MainActivity.test
                );
        setListAdapter(arrayAdapter); //once i set adapter it crashes

    }

}

layout XML file: monday_list_fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@id/android:list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:smoothScrollbar="true" >
    </ListView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >

        <Button
            android:id="@+id/returnBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/return_mon_Btn" 
            android:onClick="monClick">
        </Button>
    </LinearLayout>
</RelativeLayout>

LOGCAT

04-11 23:45:53.992: E/AndroidRuntime(10006): FATAL EXCEPTION: main
04-11 23:45:53.992: E/AndroidRuntime(10006): Process: com.example.s0217980_diary, PID: 10006
04-11 23:45:53.992: E/AndroidRuntime(10006): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.s0217980_diary/com.example.s0217980_diary.MainActivity}: android.view.InflateException: Binary XML file line #41: Error inflating class fragment
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.os.Handler.dispatchMessage(Handler.java:102)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.os.Looper.loop(Looper.java:136)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.app.ActivityThread.main(ActivityThread.java:5017)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at java.lang.reflect.Method.invokeNative(Native Method)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at java.lang.reflect.Method.invoke(Method.java:515)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at dalvik.system.NativeStart.main(Native Method)
04-11 23:45:53.992: E/AndroidRuntime(10006): Caused by: android.view.InflateException: Binary XML file line #41: Error inflating class fragment
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.app.Activity.setContentView(Activity.java:1929)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at com.example.s0217980_diary.MainActivity.onCreate(MainActivity.java:52)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.app.Activity.performCreate(Activity.java:5231)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
04-11 23:45:53.992: E/AndroidRuntime(10006):    ... 11 more
04-11 23:45:53.992: E/AndroidRuntime(10006): Caused by: java.lang.NullPointerException
04-11 23:45:53.992: E/AndroidRuntime(10006):    at com.example.s0217980_diary.Monday_list_fragment.onCreate(Monday_list_fragment.java:45)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.app.Fragment.performCreate(Fragment.java:1678)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:859)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1040)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1142)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.app.Activity.onCreateView(Activity.java:4786)
04-11 23:45:53.992: E/AndroidRuntime(10006):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
04-11 23:45:53.992: E/AndroidRuntime(10006):    ... 21 more
04-11 23:48:11.294: D/dalvikvm(10069): GC_FOR_ALLOC freed 71K, 6% free 3267K/3448K, paused 16ms, total 24ms
04-11 23:48:11.364: D/AndroidRuntime(10069): Shutting down VM
04-11 23:48:11.364: W/dalvikvm(10069): threadid=1: thread exiting with uncaught exception (group=0xb0c9db20)
04-11 23:48:11.374: E/AndroidRuntime(10069): FATAL EXCEPTION: main
04-11 23:48:11.374: E/AndroidRuntime(10069): Process: com.example.s0217980_diary, PID: 10069
04-11 23:48:11.374: E/AndroidRuntime(10069): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.s0217980_diary/com.example.s0217980_diary.MainActivity}: android.view.InflateException: Binary XML file line #41: Error inflating class fragment
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.os.Handler.dispatchMessage(Handler.java:102)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.os.Looper.loop(Looper.java:136)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.app.ActivityThread.main(ActivityThread.java:5017)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at java.lang.reflect.Method.invokeNative(Native Method)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at java.lang.reflect.Method.invoke(Method.java:515)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at dalvik.system.NativeStart.main(Native Method)
04-11 23:48:11.374: E/AndroidRuntime(10069): Caused by: android.view.InflateException: Binary XML file line #41: Error inflating class fragment
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.app.Activity.setContentView(Activity.java:1929)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at com.example.s0217980_diary.MainActivity.onCreate(MainActivity.java:52)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.app.Activity.performCreate(Activity.java:5231)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
04-11 23:48:11.374: E/AndroidRuntime(10069):    ... 11 more
04-11 23:48:11.374: E/AndroidRuntime(10069): Caused by: java.lang.NullPointerException
04-11 23:48:11.374: E/AndroidRuntime(10069):    at com.example.s0217980_diary.Monday_list_fragment.onCreate(Monday_list_fragment.java:45)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.app.Fragment.performCreate(Fragment.java:1678)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:859)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1040)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1142)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.app.Activity.onCreateView(Activity.java:4786)
04-11 23:48:11.374: E/AndroidRuntime(10069):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
04-11 23:48:11.374: E/AndroidRuntime(10069):    ... 21 more

解决方案

If you have an array like ArrayList, you need not to unpack it and extract the string what you wanted and add it to another array just to input it to a listview. Just override the toString() method in your DiaryLogs class and return it with the strings of your choice (e.g. timeEntry & entryEntered). like

// class DiaryLogs
class DiaryLogs {
    ...
    @Override
    public toString() {
        return dateTime + " - " + entryName;
    }
    ...
}

// in your activity
ArrayList<DiaryLogs> diaryLogs = new ArrayList<DiaryLogs>();
diaryLogs.add(new DiaryLogs(1, "Apr. 14, 2014", "Entry 1"));
diaryLogs.add(new DiaryLogs(1, "Apr. 14, 2014", "Entry 2"));
diaryLogs.add(new DiaryLogs(1, "Apr. 14, 2014", "Entry 3"));

yourListView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, diaryLogs));

yourListView is obviously the listview that you are using.

这篇关于如何设置的ArrayList&LT;&定制GT;在在延伸的ListView另一片段ListView的数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆