微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在android中选择单选按钮时如何确定微调字符串数组列表项?

如何解决在android中选择单选按钮时如何确定微调字符串数组列表项?

我对如何根据选定的单选按钮确定微调器的数组感到困惑。

所以我有 1 个微调器和 1 个 RadioButtonGroup 包含 2 个 RadioButton。我的情况就像:

  1. 如果选择了 RadioButton_A,则微调器将显示此列表:
<string-array name="spinner_item_a">
    <item>plant 1</item>
    <item>plant 2</item>
    <item>plant 3</item>
</string-array>
  1. 如果选择了 RadioButton_A,则微调器将显示此列表:
 <string-array name="spinner_item_b">
    <item>fruit 1</item>
    <item>fruit 2</item>
    <item>fruit 3</item>
</string-array>

我使用 SharedPreferences 传递 RadioButton 的值,以便微调器可以获取该值。这是我选择的 RadioButton 的代码

onSelectedChapterChange = new RadioGroup.OnCheckedchangelistener() {
            @Override
            public void onCheckedChanged(RadioGroup group,int checkedId) {
                chapters = group.getCheckedRadioButtonId() == R.id.chapter_1_radio_button ? plant : fruit;
                if (chapters.equals(plant))
                    setPrefType = "Plant";
                if (nationality.equals(fruit))
                    setPrefType = "Fruit";
                    SharedPreferences.Editor sPref = context.getSharedPreferences("ChapterTypePref",Context.MODE_PRIVATE).edit();
                    sPref.putString("ChapterInfo",setPrefType);
                    sPref.apply();
            }
        };

这是我的微调监听器:

chapterSelectedListener = new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent,View view,int position,long id) 
             {
            if (position > 0) {
                chapterType = chapterItemValueList.get(position-1);
            }
        }

        @Override
        public void onnothingSelected(AdapterView<?> parent) {

        }
    };

这是我将项目列表设置到适配器中的方法

 private void initChapterSpinner(final Context context,Resources resources) {
        SharedPreferences pref = context.getSharedPreferences("ChapterTypePref",Context.MODE_PRIVATE);
        String chapterPref = pref.getString("ChapterInfo","");
        if (chapterPref == "Plant"){
            chapterItemValueList = new ArrayList<>(Arrays.asList(
                resources.getStringArray(R.array.spinner_item_a)));
        } else if (chapterPref == "Fruit"){
            chapterItemValueList = new ArrayList<>(Arrays.asList(
                resources.getStringArray(R.array.spinner_item_b)));
        }
        
        idTypeArrayAdapter = new IdTypeSpinnerAdapter(context,idTypeItemValueList);

        idTypeArrayAdapter.setDropDownViewResource(R.layout.spinner_dropdown_cdd);
    }

事实证明,微调适配器的列表项变为空。我已经了解了应该如何运行流程的逻辑,但它只是在实现它时令人困惑。请帮助我,谢谢:D

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?