2016-11-28 26 views
-4

我想這連接值與兩個微調

當我選擇從spinner1一個項目,在相應

爲例

spinner2變化值當我從spinner1選擇「美國」,「洛杉磯洛杉磯「和」紐約「在spinner2中顯示。
當我從spinner1中選擇「德國」時,spinner2中會顯示「柏林」和「慕尼黑」。

+2

查找下面相關鏈接:http://stackoverflow.com/questions/29474829/how-to-make-spinner-depends-on-another-spinner –

回答

0

嘗試是這樣的:

private void setSpinner1() { 
    Spinner spinner1 = (Spinner) findViewById(R.id.spinner1); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.cities, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner1.setAdapter(adapter); 
    String[] countries = getResources().getStringArray(R.array.countries); 
    spinner1.setOnItemSelectedListener(new OnItemSelectedListener() { 

     public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
      loadContentOnSpinner2(countries[pos]); 
     } 

     public void onNothingSelected(AdapterView<?> parent) { 

     } 

    }); 
} 

private void loadContentOnSpinner2(String country) { 
    Spinner spinner2 = (Spinner) findViewById(R.id.spinner2); 
    ArrayAdapter<CharSequence> adapter = null; 
    if(country.equals("USA")) 
     ArrayAdapter.createFromResource(this, R.array.usa_states, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner2.setAdapter(adapter); 
} 

在arrays.xml(RES /值文件夾):

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string-array name="countries"> 
     <item>USA</item> 
     <item>...</item> 
    </string-array> 
</resources> 

<resources> 
    <string-array name="usa_states"> 
     <item>New York</item> 
     <item>...</item> 
    </string-array> 
</resources> 
+0

我在這一行有錯誤 loadContentOnSpinner2(國家.get(pos)) 無法解析符號'國家 –

+0

我更新了代碼。再試一次。 – fsnasser

+0

運行程序時看不到該項目 –

0

您已經在第一個SpinneronItemSelected這個方法中設置了您的第二個Spinner adpater值。

CountrySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

       // get here State Spinner 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> parent) { 

      } 
     }); 
0

當你使用selecte然後OnItemSelectedListener下面的代碼先用微調。

spinner1.setOnItemSelectedListener(new OnItemSelectedListener() { 

       public void onItemSelected(AdapterView<?> parentView, 
         View selectedItemView, int position, long id) { 

       if(pos == 1){ 
        spinner2.setAdapter(adapter2); 
       }else{ 
        spinner2.setAdapter(adapter3); 
       } 

       } 

       public void onNothingSelected(AdapterView<?> arg0) {// do nothing 
       } 

      });