设置ListView适配器:空指针异常

时间:2012-04-15 15:42:46

标签: android listview android-arrayadapter

我正在尝试将ListView的内容设置为TextViews数组。

根据我目前的情况,我得到一个空指针异常,即使我认为我做的是这里建议的: how do I add items to listview dynamically in android

这是我目前所拥有的:

ListView lvSuggestions = (ListView)findViewById(R.id.lvSuggestions);

ArrayAdapter<TextView> arrayAdapter =  new ArrayAdapter<TextView>(this, android.R.layout.simple_list_item_1);
lvSuggestions.setAdapter(arrayAdapter);

但是在设置适配器时我得到了异常。

我尝试使用TextViews填充ArrayList,然后使用完整的ArrayList创建适配器,但是当我设置适配器时,我得到了相同的Null Pointer Exception。

感谢您的帮助

4 个答案:

答案 0 :(得分:1)

ArrayAdapter<TextView> arrayAdapter =  new ArrayAdapter<TextView>(this, android.R.layout.simple_list_item_1);

用下面的

更改上面一行
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1);

并将要显示的所有字符串添加到arrayAdapter,如下所示

arrayAdapter.add("string1");
arrayAdapter.add("string2");
arrayAdapter.add("string3");//so on 

答案 1 :(得分:0)

(ListView)findViewById(R.id.lvSuggestions);
如果null返回findViewById(未找到任何项目)或返回的对象不属于null类型,

可能会返回ListView

保护它:

if (lvSuggestions != null) {
  ArrayAdapter<TextView> arrayAdapter = new ArrayAdapter<TextView>(this, 
      android.R.layout.simple_list_item_1);
  lvSuggestions.setAdapter(arrayAdapter);
}

答案 2 :(得分:0)

请参阅此链接以了解自定义适配器的用法。

LINK1

LINK2

LINK3

LINK4

LINK5

LINK6

答案 3 :(得分:0)

也许你在setAdapter之后放了setContentView。

一定是这样的:

的setContentView(XXX);

// ...

setAdapter(XXX)

希望有所帮助!