gpt4 book ai didi

java - 删除值后重置微调器

转载 作者:行者123 更新时间:2023-11-29 05:59:27 24 4
gpt4 key购买 nike

我正在尝试在删除值后重新填充 Spinner

目前,该应用程序设置了一个包含字符串值列表的 Spinner,然后在使用该应用程序时,其中一些值会从 ArrayAdaptor 中删除。然后在某些时候,Spinner 的列表需要使用默认值列表进行重置。我当前的代码只是创建一个新的 ArrayAdaptor 并将其分配给 Spinner 使用与 Spinner 最初设置相同的字符串数组资源:

Spinner mySpinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
Static.itemList);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mySpinner.setAdapter(arrayAdapter);

其中 Static.itemlistString[] 类型的数组。

就目前而言,项目已从微调器中移除,但使用上述代码不会将 微调器 的值重置为存储在 Static.itemList 中的列表。在我看来,这应该可行,但显然缺少一些东西,因为它没有。

完整代码可以在 https://github.com/Uruwolf/VO-Miner/blob/master/src/com/uruwolf/vominer/VoMinerActivity.java 找到有问题的方法是从第 142 行到第 147 行(我知道缩进已关闭,在我的编辑器中看起来不错。我不确定为什么它在 github 上不正确)。

这是我在 StackOverflow 上的第一个问题,所以如果我做错了什么,请告诉我。

最佳答案

您可能需要在更改列表后调用适配器上的 notifyDataSetChanged()。

我认为更好的方法是避免重新创建新适配器并在将数据重新添加到主列表后调用 notifyDataSetChanged()。您实际上不需要重新创建适配器,因为除了适配器指向 的数据列表外,适配器中的任何内容都没有改变。由于适配器只是指向一个列表,并不使用/包含列表本身,因此如果您更改引用的列表,适配器应该能够获取更改(在收到通知时)。​​

这样的事情可能会奏效

定义变量

Static.itemlist ... /*This list is static. Data never changes */
List<String> myListOfStrings;
ArrayAdapter<String> arrayAdapter;

初始化微调器和适配器

Spinner mySpinner = (Spinner) findViewById(R.id.spinner); 

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

arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

mySpinner.setAdapter(arrayAdapter);

刷新适配器

myListOfStrings.clear();

myListOfStrings.addAll(Static.itemList); = /* Copy/Add the data from Static.itemList into myListOfStrings */

arrayAdapter.notifyDataSetChanged(); /* Inform the adapter we've changed items, which should force a refresh */

关于java - 删除值后重置微调器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10708224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com