2011-05-26 22 views
1

這是我的代碼使用onItemSelectedListener

[...] 
final String[] top_spinner_items = new String[35]; 
for (int i = 0; i < top_spinner_items.length; i++) { 
    top_spinner_items[i] = Integer.toString(i+1); 
} 
ArrayAdapter<String> spn_topItemsAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, top_spinner_items); 
spn_topItemsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
[...] 



AdapterView.OnItemSelectedListener lst_bottomSpinner_changed_element = new OnItemSelectedListener() { 

    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
     // 
     final String[] top_spinner_items = new String[35]; 
     for (int i = 0; i < top_spinner_items.length; i++) { 
      top_spinner_items[i] = Integer.toString(i+1); 
     } 
     ArrayAdapter<String> spn_topItemsAdapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item, top_spinner_items); 
     spn_topItemsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    } 

    public void onNothingSelected(AdapterView<?> parentView) { 
     // your code here 
    } 

}; 

(所有丟失的引用代碼是之間的代碼或之前)更改運行時Spinner的適配器

我的問題是,爲什麼內部適配器視圖.OnItemSelectedListener

ArrayAdapter<String> spn_topItemsAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, top_spinner_items); 

給出錯誤。它說「構造函數是未定義的」。我嘗試使用android.widget.ArrayAdapter,但沒有。 我想改變一個微調的適配器,當一個先前的微調改變時(我想第二個微調有設置在前一個值)

你有什麼想法嗎?

回答

2

由於您將AdapterView.OnItemSelectedListener的實例傳遞給適配器的構造函數而不是上下文,因此出現編譯錯誤。修改onItemSelected你的代碼,加入你的Activitythis類名:

ArrayAdapter<String> spn_topItemsAdapter = new ArrayAdapter<String>(YourActivity.this, 
      android.R.layout.simple_spinner_item, top_spinner_items); 

而且,你錯過了適配器inItemSelected設置爲您ListView,像parentView.setAdapter(spn_topItemsAdapter);
但是,我認爲,更改整個適配器onItemSelected不是一個好主意。你最好修改一下現有的。

+0

你能告訴我如何修改它(如果它不是太長或者複雜的話,請在這裏解釋)? – 2011-05-26 12:22:45

+0

它很大程度上取決於你的目的。你可以使用'add','insert'和'remove'方法。 – ernazm 2011-05-26 12:42:59

相關問題