如何基于第一个微调器和基于第二个微调器的第三个微调器填充第二个微调器?

时间:2015-03-30 19:35:06

标签: android spinner

我有3个微调器

<string-array name="country_array">
       <item>India</item>
       <item>Pakistan</item>
       <item>Srilanka</item>
    </string-array>

<string-array name="city_array">
       <item>Bangalore</item>
       <item>Hyderabad</item>
       <item>Delhi</item>
    </string-array>

<string-array name="area_array">
       <item>Hitech City</item>
       <item>Jubli Hills</item>
       <item>Banjara Hills</item>
    </string-array>

如何制作下拉菜单?当选择印度时,它应该填充班加罗尔,海德拉巴和德里,当选择海德拉巴时,它应该填充hitechcity,jublihills等

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以将特定数组设置为第一个微调器,然后使用函数检查在微调器上选择的字符串,并将另一个数组提供给第二个微调器,如下所示:

String []ejemplos= { "option1", "option2", "option3"};
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, ejemplos);
        Sp1.setAdapter(adapter);

            Sp1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                String item = (String)parent.getItemAtPosition(pos);

                 if(item.matches("option 1")){
                     con=1;
                     checar();
                }else{
                    if(item.matches("option 2")){
                        con=2;
                        checar();
                    }

                }
            }
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });

然后,填充第二个微调器(sp2)的函数,如下所示:

void checar(){
         if(con==1){
             String []ejemplos2= { "option 1", "option 2", "option 3"};
             ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, ejemplos2);
             Sp2.setAdapter(adapter2);
         }else{
             if(con==2){
                 String []ejemplos2= { "opcion 1"};
                 ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, ejemplos2);
                 Sp2.setAdapter(adapter2);
             }else{
                 if(con==3){
                     String []ejemplos2= { "opcion 1", "opcion 2", "opcion 3"};
                     ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, ejemplos2);
                     Sp2.setAdapter(adapter2);
                 }
             }
         }
    }//fin checar

并向第二个微调器添加一个监听器,如下所示:

Sp2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                    con2 = (String)parent.getItemAtPosition(pos);
                    if(con2=="opcion 1" && con==1){
                        //do something
                    }else{
                        if(con2=="opcion 2" && con==1){
                            //do something
                        }
                    }
                }
                public void onNothingSelected(AdapterView<?> parent) {
                }
            });

在第二个微调器上,你可以再次调用该函数并将字符串设置为第三个微调器,并做任何你想做的事情!希望这对你有用!

见啊!