2012-07-26 51 views
0

我需要從一個微調框中獲取selectedItemPosition,並在第二個微調框中使用它。我想要這個值動態變化。我無法從微調框中動態獲取選定的值

下面是我用紡紗類代碼:

int item; 
Spinner spinner_cat; 
Spinner spinner_subcat; 
..... 
    spinner_cat = (Spinner) findViewById(R.id.spinner1); 
    List<String> category = dbAdapter.getAllCategory(); 
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, category); 
    dataAdapter 
      .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner_cat.setAdapter(dataAdapter); 
    spinner_cat.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
       public void onItemSelected(AdapterView<?> parent, 
         View view, int position, long id) { 
        ExpenseDB.this.item = spinner_cat 
          .getSelectedItemPosition() + 1; 
        Log.i("Is it work", "in method " + item); 

       } 

       public void onNothingSelected(AdapterView<?> arg0) { 

       } 
      }); 

    spinner_subcat = (Spinner) findViewById(R.id.spinner2); 
    List<String> sub_category = dbAdapter.getAllSubCategory(item); // here it must change dynamically 
    ArrayAdapter<String> subDataAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, sub_category); 
    subDataAdapter 
      .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner_subcat.setAdapter(subDataAdapter); 
    dbAdapter.close(); 

} 

}

+0

刪除您以前類似quesition ..不交副本.. – Ronnie 2012-07-26 13:47:43

回答

1
spinner_cat.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    public void onItemSelected(AdapterView<?> parent, 
         View view, int position, long id) { 
     ExpenseDB.this.item = spinner_cat.getSelectedItemPosition() + 1; 
     fillsubCategory(); 
    } 
}); 
... 
void fillsubCategory() { 
    spinner_subcat = (Spinner) findViewById(R.id.spinner2); 
    List<String> sub_category = dbAdapter.getAllSubCategory(item); 
    ArrayAdapter<String> subDataAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, sub_category); 
    subDataAdapter 
     .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner_subcat.setAdapter(subDataAdapter); 
} 
+0

但是當我做了有錯誤:構造函數ArrayAdapter (新的AdapterView.OnItemSelectedListener(){},int,列表)未定義 – 2012-07-26 13:12:56

+0

我複製錯了什麼? – 2012-07-26 13:36:01

+0

好的..在ArrayAdapter的構造函數中用'view.getContext()'替換'this' .. – Ronnie 2012-07-26 13:45:58

相關問題