场景:我有两个带有一个适配器和全局数组的微调器。当任何一个从一个微调器中选择一个项目时,那个项目将从全局数组中删除。问题是当一个项目从全局数组中删除该项目后再次选择0索引,而另一个项目在0索引的获取位置时。如果我将选择0索引更改项目,那么它将不会选择除所有项目之外的其他项目。
在这种情况下,任何人都可以解释或建议我想做什么。
List<String> spinnerArray = new ArrayList<String>();
HashMap<String, String> index_val = new HashMap<String, String>();
ArrayAdapter<String> adapter_left;
spinnerArray.add("None");
spinnerArray.add("Task");
spinnerArray.add("Priority");
spinnerArray.add("Deadline");
spinnerArray.add("Assigned to");
spinnerArray.add("Created by");
spinnerArray.add("Closed by");
spinnerArray.add("Category");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(activity, R.layout.spinner_selected_item, noneArray);
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);
adapter_left = new ArrayAdapter<String>(activity, R.layout.spinner_selected_item_left, spinnerArray);
adapter_left.setDropDownViewResource(R.layout.spinner_dropdown_item);
task_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
if(!index_val.get("1").equalsIgnoreCase("None")){
spinnerArray.add(index_val.get("1"));
}
current_selected_val = adapterView.getItemAtPosition(i).toString();
index_val.put("1", current_selected_val);
if(!current_selected_val.equalsIgnoreCase("none")) {
spinnerArray.remove(spinnerArray.indexOf(current_selected_val));
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
答案 0 :(得分:2)
每次修改数组列表(如添加,删除或更新)时,都应通知您的数组适配器。
请通知您的适配器。
我希望这对你有所帮助。
答案 1 :(得分:0)
这是不可能的,因为微调器代表索引而不是实际项目来维护他们的项目。