2012-10-14 99 views
0
Spinner spinner, spinner2; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_check_box_tuts); 

     spinner = (Spinner)findViewById(R.id.spinner1); 
     spinner2 = (Spinner)findViewById(R.id.spinner2); 
     spinner.setOnItemSelectedListener(this); 

    } 
    @Override 
    public void onItemSelected(AdapterView<?> v, View arg1, int arg2, 
      long arg3) { 
     switch(v.getId()){ 
     case R.id.spinner1: 
      if(spinner.getSelectedItemPosition() == 1){ 
       //what goes here?? 
      break; 
     } 
     } 
    } 

就像我的第一微調名單的國家:美國,日本等。所以美國已經選擇了例如後,我的第二微調就能夠得到美國的狀態數組列表。更新微調陣列依賴於其他的選擇

我用我的新手邏輯來試圖這樣想:設置第二個微調爲View.GONE,然後如果讓我們說美國被選中,則顯示它獨自承載狀態的微調器2 ..但是如果我有60國家,那麼我必須有60微調,這很有趣,所以幫我:D

回答

0

而不是創建一個Spinner爲每個國家實例,保持相同Spinner ,並且當從第一個SpinnerArrayAdapter.createFromResource()Spinner.setAdapter()中選擇一個值時,替換存儲在其中的數據。 Here是使用這兩個調用的示例。

在選擇第一個選項之前,不要隱藏第二個Spinner,可以考慮在第一個Spinner中選擇一個默認選項,然後用匹配的數據填充第二個選項。在你的例子中,美國將是一個很好的默認選擇。

+0

'公共無效onItemSelected(適配器視圖 V,查看ARG1,INT ARG2, \t \t \t長ARG3){ \t \t \t INT \t POS = country.getSelectedItemPosition(); \t \t switch(pos){ \t \t \t case 0:stateSpinner.setEnabled(false); \t \t \t break; \t \t \t \t \t \t殼體1: \t \t \t \t ArrayAdapter <的CharSequence>適配器= ArrayAdapter.createFromResource(此, \t \t \t R.array.US_state_array,android.R.layout.simple_spinner_item); \t \t \t adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); \t \t \t stateSpinner.setAdapter(adapter); \t \t \t break;' 第二個數組更新但無法選擇。爲什麼? –