2013-05-08 58 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

相关问题