2013-05-08 53 views
5

是否可以在不調用onItemSelected方法的情況下將選定的Spinner位置更改爲某些內容?如何在沒有onItemSelected的情況下設置Spinner項目被調用

基本上我想要做的是回到微調框中以前選擇的項目,因爲其中一個選擇時顯示一個對話框。當用戶點擊後退按鈕時,微調器仍顯示他們處於顯示對話框的位置。

那麼有沒有一種方法可以防止在使用spinner.setSelection(position)回覆時調用它,或者有沒有辦法讓顯示對話框的位置保持選定狀態?

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) { 
    switch(arg2){ 
    case 0: 

     previousSelection = 1; 
     mNavButtonClick.onNavButtonClick(1); 

     break; 
    case 1: 
     previousSelection = 2; 
     mNavButtonClick.onNavButtonClick(2); 

     break; 
    case 2: 
     previousSelection = 3; 
     mNavButtonClick.onNavButtonClick(3); 
     break; 
    case 3: 
     previousSelection = 4; 
     mNavButtonClick.onNavButtonClick(4); 
     break; 
    case 4: 
     previousSelection = 5; 
     mNavButtonClick.onNavButtonClick(5); 
     break; 
    case 5: 
        //this case shows the dialog 
     mNavButtonClick.onNavButtonClick(6); 
     break; 
    default: 
     break; 
    } 
} 

所示的對話框,用戶點擊返回按鈕,關閉對話框,並在onDismiss我打電話

spinner.setSelection(previousSelection); 

回到以前的選擇,但是這又重新創建視圖,我不因爲我已經在視圖上,我只想表明我處於微調視圖中

+0

嘗試刷新適配器。 – NarendraJi 2013-05-08 18:43:51

+0

@NarendraDroidWorm即將重建列表,將選擇位置設置爲「0」,與在選定的最後一個位置調用'setSelection'完全不同# – tyczj 2013-05-08 18:48:01

+0

發佈您的當前代碼,代碼將描述比詞多的多 – stinepike 2013-05-08 18:57:29

回答

0

AFAIK,沒有辦法阻止被調用的函數。但是,你可以選擇(當你使用setSelection),以不執行的功能使用簡單,如果代碼在這裏退房接受的答案:

Undesired onItemSelected calls

相關問題