android - 微调器问题中的动态数组

标签 android arrays arraylist spinner android-spinner

场景:我有 2 个带有一个适配器和全局数组的微调器。当任何人从一个微调器中选择一个项目时,该项目将从全局数组中删除。问题是当一个项目假设在从全局数组中删除该项目并在获取位置使用 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) {

                }

            });

最佳答案

每当您修改数组列表(如添加、删除或更新)时,您的数组适配器都应该得到通知。

因此请通知您的适配器。

希望对您有所帮助。

关于android - 微调器问题中的动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39888698/

相关文章:

android - 条目名称 'AndroidManifest.xml' 冲突(将 android gradle 插件更新到 3.6.0 后构建失败)

java - 从整数数组中得到奇怪的结果

java - 无法解析 R.array

java - 指定 ArrayList 的类型

Java - 通过 TCP 传递对象的 ArrayList

android - 用今天、昨天、明天等字符串格式化日期的正确方法

android - 动态创建的 View 是否继承主题属性?

java - Android 电视盒上的设备所有者无法正常工作

c++ - 寻找同构排列集的算法

java - 使用java并行流在非同步ArrayList中添加元素