2015-03-30 90 views
-1

我有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> 

如何让下拉列表?选择印度时,它应该填充班加罗尔,海得拉巴和德里,并且在选择海得拉巴应该填充海德拉巴科技城,jublihills等提前

谢谢

+1

因此,以你的xml例子为例,你如何确定哪个区域对应于哪个城市,哪个城市对应哪个国家?您的子元素没有对父母的引用。 – 2015-03-30 19:40:42

回答

1

你可以设置一个特定的阵列到第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) { 
       } 
      }); 

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

看到你!

相关问题