0

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

就我目前所拥有的而言,我得到了一个空指针异常,即使我认为我会做这里建议的事情: 如何在 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 创建适配器,但是当我设置适配器时,我得到了相同的空指针异常。

谢谢你的帮助

4

4 回答 4

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 
于 2012-04-15T15:47:54.293 回答
0

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

null如果findViewById返回null(未找到任何项目)或返回的对象不是 type ,则可能返回ListView

保护它:

if (lvSuggestions != null) {
  ArrayAdapter<TextView> arrayAdapter = new ArrayAdapter<TextView>(this, 
      android.R.layout.simple_list_item_1);
  lvSuggestions.setAdapter(arrayAdapter);
}
于 2012-04-15T15:45:45.380 回答
0

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

链接1

链接2

链接3

链接4

链接5

链接6

于 2012-04-15T16:04:01.323 回答
0

也许你把 setContentView 放在 setAdapter 之后。

它必须是这样的:

设置内容视图(xxx);

//....

设置适配器(xxx)

希望对您有所帮助!

于 2013-08-24T05:33:08.110 回答