2013-02-25 58 views
0

我想實現與自定義列表視圖的列表片段。雖然我的logcat中出現錯誤以下的實現。我試圖讓我的片段onCreateView()像這樣的列表視圖自定義ListFragment獲取NullPointer異常

ArrayListFragment list = new ArrayListFragment(); 
      getActivity().getSupportFragmentManager().beginTransaction().add(android.R.id.content,list).commit(); 

我沒有得到什麼是錯的。

和我的自定義listfragment類是: -

public static class ArrayListFragment extends ListFragment implements OnClickListener{ 

     PairWithSensorFragment mPairWithSensorFragment = new PairWithSensorFragment(); 
     String[] arrayValues = {"Android", "BlackBerry", "iPhone", "Windows", "linuxPhone"}; 

     @Override 
      public void onActivityCreated(Bundle savedInstanceState) { 
      super.onActivityCreated(savedInstanceState); 

      ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), 
        R.layout.pairwithsensor_listrow, android.R.id.text1, arrayValues); 
      setListAdapter(adapter); 

      /* ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), 
        android.R.layout.simple_list_item_1, arrayValues); 
       setListAdapter(adapter);*/ 

      } 

      @Override 
      public void onListItemClick(ListView l, View v, int position, long id) { 
      // Do something with the data 
       Toast.makeText(getActivity().getBaseContext() , arrayValues[position]+" "+"Clicked " , Toast.LENGTH_SHORT).show(); 

      } 
} 

pairwithsensor_listrow.xml: -

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

    <TextView 
     android:id="@+id/tv_pairwithsensor_sensorid" 
     android:layout_width="200dp" 
     android:layout_height="wrap_content" 
     android:layout_margin="5dp" 
     android:layout_alignParentLeft="true"> 
    </TextView> 

    <EditText 
     android:id="@+id/edt_pairwithsensor_sensorName" 
     android:layout_width="200dp" 
     android:layout_height="wrap_content" 
     android:layout_margin="5dp" 
     android:layout_toRightOf="@id/tv_pairwithsensor_sensorid" 
     android:hint="@string/please_enter_value"> 
    </EditText> 

    <Button 
     android:id="@+id/btn_pairwithsensor_pair" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="5dp" 
     android:layout_alignParentRight="true" 
     android:text="@string/PairwithSensor_pairButton"/> 


</RelativeLayout> 

logcat的

02-25 10:22:22.870: E/AndroidRuntime(10247): FATAL EXCEPTION: main 
    02-25 10:22:22.870: E/AndroidRuntime(10247): java.lang.NullPointerException 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:392) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.AbsListView.obtainView(AbsListView.java:2033) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.ListView.makeAndAddView(ListView.java:1772) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.ListView.fillDown(ListView.java:672) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.ListView.fillFromTop(ListView.java:732) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.ListView.layoutChildren(ListView.java:1625) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.AbsListView.onLayout(AbsListView.java:1863) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.View.layout(View.java:11282) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.ViewGroup.layout(ViewGroup.java:4224) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.FrameLayout.onLayout(FrameLayout.java:431) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.View.layout(View.java:11282) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.ViewGroup.layout(ViewGroup.java:4224) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.FrameLayout.onLayout(FrameLayout.java:431) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.View.layout(View.java:11282) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.ViewGroup.layout(ViewGroup.java:4224) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.FrameLayout.onLayout(FrameLayout.java:431) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.View.layout(View.java:11282) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.ViewGroup.layout(ViewGroup.java:4224) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.FrameLayout.onLayout(FrameLayout.java:431) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.View.layout(View.java:11282) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.ViewGroup.layout(ViewGroup.java:4224) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1628) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1486) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.LinearLayout.onLayout(LinearLayout.java:1399) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.View.layout(View.java:11282) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.ViewGroup.layout(ViewGroup.java:4224) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.widget.FrameLayout.onLayout(FrameLayout.java:431) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.View.layout(View.java:11282) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.ViewGroup.layout(ViewGroup.java:4224) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1514) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2467) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.os.Handler.dispatchMessage(Handler.java:99) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.os.Looper.loop(Looper.java:137) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at android.app.ActivityThread.main(ActivityThread.java:4424) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at java.lang.reflect.Method.invokeNative(Native Method) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at java.lang.reflect.Method.invoke(Method.java:511) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
    02-25 10:22:22.870: E/AndroidRuntime(10247): at dalvik.system.NativeStart.main(Native Method) 

回答

0

看看這個:ArrayAdapter(Context context, int layoutId, int textViewResourceId, T[] objects)

textViewResourceId應該是您的佈局中TextView的資源ID,即您的案例中的R.id.tv_pairwithsensor_sensorid。並且您指定了android.R.id.text1(可能來自使用標準佈局的示例)。異常只是告訴你它找不到你指定的id的TextView。

+0

是的,你說的是對的。我做了一些改變,然後工作正常。謝謝你的回覆。 – 2013-02-25 06:45:48