基于First Spinner影响第二个微调器选择

时间:2013-09-06 01:31:26

标签: java android android-spinner

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

AdapterView.OnItemSelectedListener 

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

3 个答案:

答案 0 :(得分: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);

                   }
            }

希望它会对你有所帮助。

答案 1 :(得分:0)

如果它是一个String数组,你可以用XML定义它,然后使用getResource()。getStringArray()或用Java声明它。

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

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

经过测试和工作

答案 2 :(得分: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);

        }
            }