2011-07-22 86 views
3

我創建了一個微調,並啓動監聽器:的Android微調OnItemSelectedListener不工作準確

customerListSpinner.setOnItemSelectedListener(new OnItemSelectedListener(){ 
    public void onItemSelected(AdapterView<?> adapter, View view, int position, long id) { 
     // I do some work here 
    } 
    public void onNothingSelected(AdapterView<?> arg0) { 
     isInitRadioGroup = false; 
    } 
); 

我已經在微調最初增加了三個值:「搜索」,「員工」,「公司」。 如果用戶選擇「搜索」,則會顯示一個新的ListActivity,並將選定的值作爲結果添加到上面的Spinner中。
像這樣,我正在對微調項目的選擇執行一些操作。現在,當第一次顯示屏幕時,默認顯示「搜索」。爲了觸發ListActivity的處理,用戶必須再次選擇「搜索」。這次,ItemSelected回調函數沒有被調用。我的意思是說,如果Spinner中的值已被選中,則再次選擇相同的值時,不會觸發偵聽器。

鑑於: 當第一次顯示屏幕時,默認顯示「搜索」。用戶選擇值「員工」(處理完成,onItemSelected被調用,因爲上一個選定的值不同於用戶選擇的值)。用戶然後選擇值「搜索」。這次調用onItemSelected方法併成功地向Spinner添加一個新值。

這是Android的一個錯誤。我檢查了我的代碼中沒有錯誤。

回答

-2

嘗試使用微調如下

Spinner genspin=(Spinner)findViewById(R.id.gender); 

ArrayAdapter<String> genadap=new ArrayAdapter(this,R.layout.spinneritems,String_array); 
genadap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
genspin.setAdapter(genadap); 
genspin.setOnItemSelectedListener(this); 

那麼你就可以得到選擇的值作爲

genspin.getSelectedItem().toString() 
+0

蘇倫德拉,有在獲得微調的設定值沒有問題。我想要的是客戶端更改微調器的值(或重新選擇相同的值),然後需要執行一些操作。爲此,當用戶選擇與所選內容不同的值時,會調用onItemSelected,但當用戶重新選擇相同的值(如「Search」)時,不會調用onItemSelected。我無法手動強制回調觸發。 – Khushboo