【发布时间】:2016-06-27 06:48:07
【问题描述】:
我有 2 个 ArrayList 并想根据条件设置其中一个。但是,它没有被设置。
在onCreate() 内部,我根据条件定义了ArrayAdapter 和其中一个列表。第一次它可以工作,但下次当我更新列表并尝试使用notifyDataSetChanged() 再次设置时,它没有工作,并且微调器在 DD 中显示空白列表。
伪代码如下
list1, list2;
flag = True/False;
arraydapter(context, res, flag ? list1 : list2);
refreshList() {
if (flag)
list1.clear();
else
list2.clear();
addDataInList();
}
addDataInList() {
if (flag)
list1.add(something);
else
list2.add(something);
adapter.notifyDataSetChanged();
}
【问题讨论】:
-
Nope by notifyDataSetChanged 方法您不能更改数据列表,当您当前列表中有任何更新时使用此方法,但是当您完全更改列表时,您需要再次设置为适配器listview,或者你只能在 list 上使用,然后更新它并调用 notify 方法
-
你应该展示你的真实代码,而不是你的伪代码。但是,我已经基于伪代码提出了一个问题:什么时候是“arraydapter(context,res,flag?list1:list2);”执行?一旦进入 onCreate()?因为如果是这种情况,如果没有标记,适配器将是空的。
-
您是否尝试过创建两个不同的适配器,然后根据您的情况更改适配器?
-
@Vickyexpert 感谢您的解释。
标签: android arraylist android-arrayadapter android-spinner