2012-06-06 54 views
1

我在選擇項目時在監聽微調器的用戶交互時遇到問題。 我知道下面的監聽工作完美Android Spinner用戶交互選擇的項目

spinner.setOnItemSelectedListener(this); 

@Override 
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
    // your code here 
} 

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

但在我的應用場景我將通過程序改變微調值,那個時候它也火onitemselected event.but我需要在用戶互動發生此事件應該只解僱在微調器上

注意:我不是在初始微調值選定項目上交談。

請讓我知道我可以做到提前這個

感謝, Naveenkumar.R

+0

放碼'onNothingSelected'方法 –

回答

2
tempListener = spinner.getOnItemSelectedListener(); 
spinner.setOnItemSelectedListener(null); 
//change the spinner value... 
spinner.setOnItemSelectedListener(tempListener) 

更優雅,你可以繼承的微調類,並創建「disableOnItemSelectedListener()」和'enableOnItemSelectedListener()'方法,它們與上面的代碼一樣。

+0

其工作正常,但我需要設置監聽前給予一定的延遲back.Let我知道,如果有不設置任何其他解決方案延遲 – naveen

+0

它有一些其他問題,我已經解決了。現在它的工作沒有設置延遲。謝謝 – naveen

+0

問題是,微調器動畫和做回調完成時。 spinner.setSelection(i,false);將禁用動畫並同樣延遲迴調。 – Renate

0

使用我在下面的鏈接中描述的簡單技術可以避免對onItemSelected的不希望的調用。這樣,您可以隨時自己設置選擇,無需擔心。檢查接受這個問題的答案:

Undesired onItemSelected calls