gpt4 book ai didi

java - 微调器选择是更新微调器项目之前的记录

转载 作者:行者123 更新时间:2023-12-01 09:51:52 25 4
gpt4 key购买 nike

我通过网络服务中的 json 填充微调器。微调器被填充,设置索引 0 的选择,onitemselected 方法触发并启动另一个方法来根据微调器中的值填充 ListView 。

当我用不同的数据重新填充微调器时,就会出现问题。微调器被填满,设置了索引 0 的选择, onitemselected 触发,当我输出所选项目时,它显示索引 0 处的上一个项目。 spinneritems.get 获取旧数据而不是新填充的数据。

这里正在填充旋转器

for (int i = 0; i < recordsArray.length(); i++) {
JSONObject record = recordsArray.getJSONObject(i);
Map<String, String> datum = new HashMap<String, String>(2);
datum.put("code", record.getString("id") + " - " + record.getString("heading"));
datum.put("description", record.getString("body"));
spinneritems.add(datum);
adapter.notifyDataSetChanged();
spinner.setSelection(0);
}

它会导致发射

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
populateList(page);
}

然后调用一个方法

final Spinner spinner = (Spinner)findViewById(R.id.comSpinner);
String spinnerItem = spinneritems.get(spinner.getSelectedItemPosition()).get("code");

第一次运行时一切正常,但是当我执行更改微调器内容的操作时,由于某种原因,最后的方法仍然会获取旧数据

最佳答案

解决了。在最初设置适配器之前,我执行以下操作

final Spinner spinner = (Spinner) findViewById(R.id.comSpinner);
spinneritems.clear();
adapter.notifyDataSetChanged();
spinner.setAdapter(adapter);

关于java - 微调器选择是更新微调器项目之前的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37548252/

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