Java 基于第一个微调器影响第二个微调器选择

Java 基于第一个微调器影响第二个微调器选择,java,android,android-spinner,Java,Android,Android Spinner,因此,我可以看到关于这一点有一些问题,但不在我的范围之内。我正在为Android构建一个有两个旋转器的应用程序。第一个有一系列的选择。然而,我不知道如何影响第二个选择基于第一个选择。我知道你可以投入 AdapterView.OnItemSelectedListener 但我不知道如何实现这一点。我读过这篇文章,但它不是我想要的。我还很好奇如何告诉微调器选择哪个数组,它是在.xml文件中还是在.java文件中?如果它是字符串数组,那么可以用xml定义它,然后使用getResource().ge

因此,我可以看到关于这一点有一些问题,但不在我的范围之内。我正在为Android构建一个有两个旋转器的应用程序。第一个有一系列的选择。然而,我不知道如何影响第二个选择基于第一个选择。我知道你可以投入

AdapterView.OnItemSelectedListener 

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

如果它是字符串数组,那么可以用xml定义它,然后使用getResource().getStringArray()或用java声明它

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

secondSpinnerAdapter = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item, newArray);
secondSpinner.setAdapter(secondSpinnerAdapter);
secondSpinnerAdapter=newArrayAdapter(这个,android.R.layout.simple\u微调器项目,newArray);
secondSpinner.setAdapter(secondSpinnerAdapter);

已测试并正在工作

更新第一个微调器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);

        }
            }
spinner1.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
//TODO自动生成的方法存根
字符串str=spinner1.getSelectedItem().toString();
如果(str.equals(“微调器项”)//微调器项是微调器1的选定项
{
ArrayAdapteradapter1=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,array1);
//adapter1.setDropDownViewResource(android.R.layout.simple\u dropdown\u item\u 1line);
喷丝头2.设置适配器(适配器1)//
}否则如果{
ArrayAdapteradapter1=新的ArrayAdapter(这是android.R.layout.simple_list_item_1,array2);
//adapter1.setDropDownViewResource(android.R.layout.simple\u dropdown\u item\u 1line);
喷丝头2.设置适配器(适配器2);
}
}
试试这个

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);

                   }
            }
firstSpinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
//TODO自动生成的方法存根
字符串selectedValue=arg0.getSelectedItem().toString();
如果(selectedValue.equalsIgnoreCase(string1)
{
ArrayAdapter firstAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,firstArray);
第二个Spinner.setAdapter(第一个适配器)//
}
else if(selectedValue.equalsIgnoreCase(string2)
{
ArrayAdapter firstAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,array2);
第二个Spinner.setAdapter(第一个适配器);
}
}

希望它能帮助您。

您如何为第一个微调器和第二个微调器生成阵列spinner@Andrain你能帮我解决我的错误吗?只需在eclipse或任何其他软件中复制粘贴你的代码。你可以找到你的错误。@user123谢谢你的关注…放松点。我在我的应用程序中做同样的事情,没有er也可以正常工作错误。可能是我在复制粘贴时出错了。对不起,没关系,伙计。我在你的代码中发现了此类错误,因此必须更新我的答案。但在回答或责怪他人之前,你应该小心。上面写着这行
new ArrayAdapter(这个,android.R.layout.simple\u list\u item\u 1,Red1)
构造函数ArrayAdapter(new AdapterView.OnItemSelectedListener(){},int,String)未定义@Shakebshaheen