2013-04-27 118 views
0

我收到了一个我无法解决的错误。自定义适配器上的NullPointerException

这里是我的代码:

私有类MyAdapter扩展ArrayAdapter {

public MyAdapter(Context context, int resource, int textViewResourceId, 
      Contact[] listc) { 
     super(context, resource, textViewResourceId, listc); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 

     LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View row = inflater.inflate(R.layout.custom_list, parent, false); 
     Contact[] items = listc; 

     ImageView iv = (ImageView) row.findViewById(R.id.imageView1); 
     TextView tv = (TextView) row.findViewById(R.id.textView1); 
     iv.setImageResource(R.drawable.contact); 
     tv.setText(items[position].getFName()+" "+items[position].getName()); 

     Log.w("myApp", tv.getText().toString()); // Used to be sure that the text isn't null 

     return super.getView(position, convertView, parent); //Line 55 (troublemaker) 
    } 
} 

而且这里是日志:

04-27 02:59:45.955: D/dalvikvm(13179): WAIT_FOR_CONCURRENT_GC blocked 6ms 
04-27 02:59:45.955: W/myApp(13179): Alain Sagna 
04-27 02:59:45.955: D/AndroidRuntime(13179): Shutting down VM 
04-27 02:59:45.955: W/dalvikvm(13179): threadid=1: thread exiting with uncaught exception (group=0x4116a2a0) 
04-27 02:59:45.960: E/AndroidRuntime(13179): FATAL EXCEPTION: main 
04-27 02:59:45.960: E/AndroidRuntime(13179): java.lang.NullPointerException 
04-27 02:59:45.960: E/AndroidRuntime(13179): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:395) 
04-27 02:59:45.960: E/AndroidRuntime(13179): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362) 
04-27 02:59:45.960: E/AndroidRuntime(13179): at com.fsd.fashioner.MainMenu$MyAdapter.getView(MainMenu.java:55) 
04-27 02:59:45.960: E/AndroidRuntime(13179): at android.widget.AbsListView.obtainView(AbsListView.java:2461) 
04-27 02:59:45.960: E/AndroidRuntime(13179): at android.widget.ListView.makeAndAddView(ListView.java:1775) 
04-27 02:59:45.960: E/AndroidRuntime(13179): at android.widget.ListView.fillDown(ListView.java:678) 
+0

55是哪里? – 323go 2013-04-27 03:50:54

回答

1

变化return语句

回报排;

as return super.getView(position,convertView,parent);包含空的covvertview并抛出空指针异常。

+0

我替换了return语句,但我仍然得到空指针异常。 ************************************************* ****************** 04-27 13:33:23.574:E/AndroidRuntime(22501):致命例外:main 04-27 13:33:23.574: E/AndroidRuntime(22501):java.lang.NullPointerException 04-27 13:33:23.574:E/AndroidRuntime(22501):\t at com.fsd.fashioner.MainMenu $ MyAdapter.getView(MainMenu.java:51) 04-27 13:33:23.574:E/AndroidRuntime(22501):\t at android.widget.AbsListView.obtainView(AbsListView.java:2461) 04-27 13:33:23.574 ******** ************************ 但现在错误是在行51 – user2325855 2013-04-27 13:36:49

+0

注释这些行并检查它:tv.setText(items [position] .getFName()+“”+ items [位置] .getName()); Log.w(“myApp”,tv.getText()。toString()); – deepak825 2013-04-29 07:21:32

0
 View retval = null; 
     retval = LayoutInflater.from(parent.getContext()).inflate(
       R.layout.custom_list, null); 
     ImageView iv = (ImageView) retval .findViewById(R.id.imageView1); 
     TextView tv = (TextView) retval .findViewById(R.id.textView1); 
     iv.setImageResource(R.drawable.contact); 
     tv.setText("just to check "); 
     return retval;