2012-03-02 6 views
0

У меня есть приложение для заметок, в котором пользователь может ввести то, что он хочет в текстовое поле. Но я также хочу, чтобы текст по-прежнему был там, даже если пользователь вышел из приложения. Как я могу применить onSavedInstantState и RestoreinstantState в коде notes.java?Как применить onSavedInstantState к этому java-коду?

public class notes extends Activity{ 

    /** Called when the activity is first created. */ 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.notes); 

     Button wg = (Button) findViewById(R.id.button3); 
     wg.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent intent = new Intent(); 
       setResult(RESULT_OK, intent); 
       finish(); 
      } 

     }); 



    } 
} 
+0

Попробуйте это: [http://stackoverflow.com/questions/6525698/how-to-use-onsavedinstancestate-example-please][1] [1]: HTTP: //stackoverflow.com/questions/6525698/how-to-use-onsavedinstancestate-example-please – Simon

ответ

0

Другой способ сохранить состояние, кроме onRetainNonConfigurationInstance() (это не рекомендуется) является onSaveInstanceState

onSaveInstanceState и это связано методы крючки, которые говорят вам что-то происходит, и вы, вероятно, хотите сохранить/восстановить. Обычно они называются изменениями конфигурации, но также могут произойти, если приложение закрыто андроидом.

Вы можете переопределить эти методы так же, как вы делали с OnCreate:

@Override 
public void onSaveInstanceState(Bundle bundle) 
{ 
    //Now you must either save it to memory, the db, a preference, or somwhere else 
    bundle.putSerializable("some key", objectToSave); 
    super.onSaveInstanceState(bundle); 
} 

Тогда вы можете получить этот объект обратно в OnCreate через переданный в пачке.

Если приложение выходит, вам нужно будет сделать больше, чем сохранить его в комплекте. Вам придется упорствовать в другом месте и вручную загружать его, когда это необходимо.

+0

Для «objecttosave», что я должен заменить? –

+0

Любой класс, который у вас есть, является Serializable (реализует java.io.Serializable). Этот класс должен содержать все, что вы хотите сохранить в памяти для изменений конфигурации, таких как вращение экрана. – Shellum

+0

Так что я просто делаю это? («некоторый ключ» Serializable), я не понимаю, извините:/ –