2013-05-08 5 views
5

onItemSelectedメソッドを呼び出すことなく、選択したスピナーの位置を何かに変更することはできますか?設定方法onItemSelectedを使用しないスピナーアイテム

私がやっていることは、選択されたときにダイアログの1つが表示されるので、スピナーの前に選択した項目に戻ることです。ユーザが戻るボタンを押すと、スピナは、それらが解消されたときにダイアログを示す位置にあることを依然として示す。

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

+0

@ NarendraDroidWormは、選択位置を '0'に設定するリストを再構築しようとしていますが、最後の位置で' setSelection'を呼び出すのとはまったく違っています – tyczj

+0

あなたの現在のコードを投稿すると、コードは – stinepike

答えて

0

AFAIK、呼び出されている機能を停止する方法はありません。しかし、あなたは(あなたがsetSelectionを使用する場合)であれば、単純なを使って関数内のコードを実行し、ここで受け入れ答えをチェックアウトしないように選択することができます

Undesired onItemSelected calls

関連する問題