2015-03-25 33 views
0

我正在嘗試保存微調器選擇狀態。因此,如果我在微調器中選擇一個選項並移動到另一個活動中,那麼使用微調器返回該活動,該選擇仍應該被選中。我發現了一些教程,但我嘗試過的教程已被棄用。如何使用Java來保存微調器狀態Android

這裏是我的微調:

//language selection list  
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.language_list, android.R.layout.simple_spinner_item); 

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

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

      // storing string resources into Array 
      lang_list = getResources().getStringArray(R.array.language_list); 

      Toast.makeText(getBaseContext(), "You have selected : " + lang_list[index], 
        Toast.LENGTH_SHORT).show(); 

      choice = spinner.getSelectedItem().toString(); 


      final ImageView country_flag = (ImageView)findViewById(R.id.country); 
      String s=((TextView)arg1).getText().toString(); 
      if(s.equals("English")) 
       country_flag.setImageDrawable(getResources().getDrawable(R.drawable.eng_spinner)); 
      if(s.equals("German")) 
       country_flag.setImageDrawable(getResources().getDrawable(R.drawable.german_spinner)); 
      if(s.equals("French")) 
       country_flag.setImageDrawable(getResources().getDrawable(R.drawable.french_spinner)); 
      if(s.equals("Spanish")) 
       country_flag.setImageDrawable(getResources().getDrawable(R.drawable.spanish_spinner)); 
     } 

回答

0

通過獲取微調當前選擇的位置的索引給予的日期,時間等成捆用鑰匙上onSaveInstanceState()保存當前微調的狀態。之後,在您的onCreate()上,檢查bundle == null,如果它不是null(如果您的活動因恢復而重新創建,則不應該是這種情況),則使用密鑰來檢索存儲在其中的值。最後,在onCreate()內使用Spinner.setPosition()手動將值設置爲您的微調器。

http://developer.android.com/training/basics/activity-lifecycle/recreating.html

這應該是一個很好看的。