如果未在onCreate中声明,则不会显示Listview

时间:2019-02-19 14:56:47

标签: android android-layout

我正在尝试填充listView,但是如果我在onCreate之后对其进行初始化,则不会出现。在将值插入用于填充listView的String数组中之后,我尝试将其初始化为onCreate并使用adapter.notifyDataSetChanged();

有人知道如何解决这个问题吗?我检查了其他问题,但没有找到解决问题的答案。

谢谢。

1 个答案:

答案 0 :(得分:2)

也许您需要在UI线程中调用adapter.notifyDataSetChanged()

另外,最好使用ArrayList<String>代替String[]

ArrayList类中保留对ArrayAdapteractivity的引用。

private ArrayList<String> items;
private ArrayAdapter<String> adapter;

初始化您的ArrayList<String>并在adapter中设置onCreate

items = new ArrayList<String>();
// add initial items
items.add("1st item");
// create adapter
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
// set the adapter
listView.setAdapter(adapter);

现在,无论何时要更改项目,都可以调用add()的{​​{1}},remove()等方法,然后调用ArrayList。可以在任何线程中完成对adapter.notifyDataSetChanged()的更改,但是应该在UI线程中调用ArrayList

例如,您可能想按按钮

adapter.notifyDataSetChanged()

此外,您可能想检查以下内容: this

this

PS:对不起,我的发帖技巧不好。我是新来的。