簡體   English   中英

如何為片段設置listadapter

[英]how to set listadapter for fragment

我的main.xml文件中有兩個framelayout。 我將framelayouts添加到擴展Fragment的類中。
我的主類擴展了FragmentActivity,這是它的Oncreate方法:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    FragmentManager fm =getFragmentManager();
    FragmentTransaction ft=fm.beginTransaction();
    Fragment f=new Freg1();
    Fragment f2=new Freg1();
    ft.add(R.id.frame1, f);
    ft.add(R.id.frame2, f2);
    ft.commit();
    tf=Typeface.createFromAsset(this.getAssets(),"font/Byekan.ttf" );
    tv1=(TextView) findViewById(R.id.textView1);
    tv1.setTypeface(tf);
    Log.i(TAG,"1");
    lv1=(ListView) findViewById(R.id.listView1);
    lv2=(ListView) findViewById(R.id.listView2);
    Log.i(TAG,"2");
    List<String> stringList = new ArrayList<String>(Arrays.asList(s1));
    Log.i(TAG,"3");
    ListAdapter listAdapter = new CustomListAdapter(MainActivity.this , R.layout.custom_list ,stringList);
    Log.i(TAG,"4");
    lv1.setAdapter(listAdapter);
    Log.i(TAG,"5");
    lv2.setAdapter(listAdapter);
    Log.i(TAG,"6");


}

當我運行代碼時,它在LOG No4之后崩潰。 這意味着setAdapter()方法不起作用。 我該如何解決這個問題?

這是我的logcat資源:

Shutting down VM
threadid=1: thread exiting with uncaught exception (group=0x40a13300)
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.taxitabriz/com.example.taxitabriz.MainActivity}: java.lang.NullPointerException
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
        at android.app.ActivityThread.access$600(ActivityThread.java:130)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4745)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
        at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.NullPointerException
        at com.example.taxitabriz.MainActivity.onCreate(MainActivity.java:55)
        at android.app.Activity.performCreate(Activity.java:5008)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
        ... 11 more

感謝您幫助我解決問題。

您的ListView lv1為null,如下所示:

java.lang.RuntimeException: Unable to start activity ComponentInfo{...}: java.lang.NullPointerException
....
com.example.taxitabriz.MainActivity.onCreate(MainActivity.java:55)

MainActivity的第55行應為以下調用: lv1.setAdapter(listAdapter);

在嘗試為其設置適配器之前,請確保listView1包含在布局中並正確初始化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM