2013-04-03 2 views
0

Как сохранить способ, которым мой Activity так закрыт с помощью кнопки с поддержкой и возобновил его, будет так же, как и при закрытии.Как сохранить состояние моей активности?

это мой Activity код:

public class Levels extends Activity{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setTheme(android.R.style.Theme_NoTitleBar_Fullscreen); 
     setContentView(R.layout.levels); 

     final EditText anstext1 = (EditText) findViewById(R.id.anstext1); 
     Button button1 = (Button) findViewById(R.id.button1); 

     button1.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       String result = anstext1.getText().toString(); 
       if(result.equals("they")) 
        setContentView(R.layout.social); 
       else 
        Toast.makeText(getApplicationContext(), "Wrong", Toast.LENGTH_LONG).show(); 
      } 
     }); 
     } 
} 
+0

Если вы имеете в виду сохранение состояния экземпляра, который должен уже работать. Если вы хотите сохранить информацию, введенную в EditText, когда пользователь, например, нажимает назад (или иным образом завершает действие), это зависит от того, что является основным источником данных. API? Местное хранилище? –

ответ

3

Вы собираетесь должны реализовать onSavedInstanceState() и заполнить его с междунар для зрения вы отображаются.

Затем, в вашем методе onCreate (Bundle savedInstanceState), вы собираетесь выкопать int из пакета и установить для него контент.

public class yourActivity extends Activity { 

    private static final String KEY_STATE_VIEW_ID = "view_id"; 
    private int _viewId = R.layout.levels; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     if (savedInstanceState != null) { 
      if (savedInstanceState.containsKey(KEY_STATE_VIEW_ID) { 
       _viewId = savedInstanceState.getInt(KEY_STATE_VIEW_ID); 
      } 
     } 
     setContentView(_viewId); 
     // in your onClick set viewId to R.layout.social 
    } 

    @Override 
    public void onSaveInstanceState(Bundle savedInstanceState){ 
     super.onSaveInstanceState(savedInstanceState); 
     savedInstanceState.putInt(KEY_STATE_VIEW_ID, _viewId); 
    } 
} 

Пример можно найти здесь: http://www.how-to-develop-android-apps.com/tag/onsaveinstancestate/

Смежные вопросы