0

所以我可以看到有关于这个的问题,但不在我的范围内。我正在构建一个有两个微调器的 Android 应用程序。第一个有一系列选择。但是,我不确定如何影响第二个基于第一个的选择。我知道你可以输入

AdapterView.OnItemSelectedListener 

但我不确定如何实现这一点。我已经阅读了这个,但这并不是我想要的。我也很好奇我如何告诉微调器选择哪个数组,它是在 .xml 文件中还是在 .java 文件中?

4

3 回答 3

1

尝试这个,

firstSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                // TODO Auto-generated method stub

                    string selectedValue = arg0.getSelectedItem().toString();
                    if(selectedValue.equalsIgnoreCase(string1)
                    {
                        ArrayAdapter<String> firstAdapter = new ArrayAdapter<String>(this,
                            android.R.layout.simple_list_item_1, firstArray);

                        secondSpinner.setAdapter(firstAdapter);//
                    }

                   else if(selectedValue.equalsIgnoreCase(string2)
                   {
                      ArrayAdapter<String> firstAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, array2);

                      secondSpinner.setAdapter(firstAdapter);

                   }
            }

希望它会帮助你。

于 2013-09-06T04:30:56.557 回答
0

更新第一个微调器 setOnItemSelectedListener 中第二个微调器的数组列表

spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                // TODO Auto-generated method stub


                    string str=spinner1.getSelectedItem().toString();
                    if(str.equals("spinner item"))//spinner item is selected item of spinner1
                    {
                        ArrayAdapter<String>adapter1 = new ArrayAdapter<String>(this,
                            android.R.layout.simple_list_item_1, array1);
                 //adapter1.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                 spinner2.setAdapter(adapter1);//
                    }else if{
                   ArrayAdapter<String>adapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, array2);
                    //adapter1.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                 spinner2.setAdapter(adapter2);

        }
            }
于 2013-09-06T03:13:19.727 回答
0

如果它是一个字符串数组,您可以在 XML 中定义它,然后使用 getResource().getStringArray() 或在 Java 中声明它。

在第一个微调器的侦听器中,您可以执行以下操作来设置第二个微调器的选项。

secondSpinnerAdapter = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item, newArray);
secondSpinner.setAdapter(secondSpinnerAdapter);

经过测试和工作

于 2013-09-06T02:37:16.883 回答