我正在尝试将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。
感谢您的帮助
答案 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)
答案 3 :(得分:0)
也许你在setAdapter之后放了setContentView。
一定是这样的:
的setContentView(XXX);
// ...
setAdapter(XXX)
希望有所帮助!