2013-06-13 5 views
0

Я просто хочу поддерживать spinner выбранное состояние в android.I есть активность A, которая извлекает данные из webservice &, выскочил в spinner.After выберите любой предмет из этого и переходит к другому действию B . Возвращаясь к активности A., мне нужно отобразить выбранный элемент на счетчике, не переходя снова на веб-вызов.Как поддерживать spinner выбранное состояние в android

Мой код:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    spinner = (Spinner) findViewById(R.id.spinner); 
if(spinnerFlag=1){ 
     spinner.setSelection(index); 
    } 
    else{ 
     //Web call for spinner data 
    } 
...  
spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
       public void onItemSelected(AdapterView<?> parent, 
         View view, int arg2, long arg3) { 

        String seletcedProductName = parent.getSelectedItem() 
          .toString(); 
        spinnerFlag=0; 
        index=arg2; 


       } 

       public void onNothingSelected(AdapterView<?> arg0) { 

       } 
      }); 

Спасибо.

ответ

0

Вы можете сохранить выбранный индекс блесны в статической переменной, инициализируется с -1, а onResume проверить значение этой переменной, если это не -1, а затем установить выбранный индекс блесны с ним.

static int position=-1; 



spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
       public void onItemSelected(AdapterView<?> parent, 
         View view, int arg2, long arg3) { 

        String seletcedProductName = parent.getSelectedItem() 
          .toString(); 
        spinnerFlag=0; 
        index=arg2; 
      position=arg2; 


       } 

       public void onNothingSelected(AdapterView<?> arg0) { 

       } 
      }); 


    @Override 
    protected void onResume() { 
     super.onResume(); 

     if(position!=-){ 
     spinner.setSelection(index); 

     } 

} 
+0

Это ненадежно из-за того, как андроид обрабатывает сборку мусора, вам лучше использовать общие предпочтения или передать набор вокруг – invertigo