在android中使用simpleAdapter的NullPointerException

我使用simpleAdapter创建列表视图,但是我收到此错误:

Caused by: java.lang.NullPointerException at com.tab.Activity.onCreate(Activity.java:36) 

这是我正在使用的代码:

 ArrayList<HashMap> list = new ArrayList<HashMap>(); private SimpleAdapter notes; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout); notes = new SimpleAdapter( this, list, R.layout.display_layout, new String[] { "line1" }, new int[] { R.id.text1} ); ListView lv = (ListView) findViewById(R.id.listview); lv.setAdapter( notes ); } 

第36行将是

 new int[] { R.id.text1} ); 

text1已定义,为什么我得到nullpointer错误?

如果评价

 new int[] { R.id.text1 } 

导致NullPointerException这是由于R.id为null。

如果R.id碰巧是一个nullInteger ,也会出现exception。

尝试这个:

  notes = new SimpleAdapter(this, list, R.layout.display_layout, new String[] { "line1" }, new int[] { android.R.id.text1 }); 

我认为R.id的值返回null。 尝试:

 new int[] { ((R.id !=null && R.id.text1 >-1)?R.id.text1 :-1)}; 

编辑

我使用-1来假设零可能是一个有效值。

最后,我通过在本教程之后实现新的SimpleAdapter解决了这个问题: http ://kurtchen.com/blog/2010/07/30/use-simpleadapter-to-make-a-list-with-icons/

我认为问题是“ArrayList list”变量为null,因此SimpleAdapter无法将任何值映射到“R.id.text1”列。

谢谢大家的答案