Activity_savedInstanceState
2554 ワード
2つのActivityがあると仮定し、それぞれMainActivity,SecondActivity.
MainActivityにはEditText編集ボックスがあり、いくつかのコンテンツを編集すると、MainActivityはecondActivityにジャンプされ、ちょうどシステムがMainActivityを殺し、EditTextのコンテンツを保存しなければ、システムが再びMainActivityを復元すると、編集されたコンテンツは表示されません.
Activity状態はonSaveInstanceState法により保存することができる.
MainActivity:
MainActivityにはEditText編集ボックスがあり、いくつかのコンテンツを編集すると、MainActivityはecondActivityにジャンプされ、ちょうどシステムがMainActivityを殺し、EditTextのコンテンツを保存しなければ、システムが再びMainActivityを復元すると、編集されたコンテンツは表示されません.
Activity状態はonSaveInstanceState法により保存することができる.
MainActivity:
package com.example.onsaveinstancestatedemo;
import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.support.v4.app.NavUtils;
public class MainActivity extends Activity {
private EditText txt;
private Button btn;
private final static String TAG="MainActivity";
private final static String KEY="key";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt=(EditText)findViewById(R.id.editText1);
if(savedInstanceState!=null&&savedInstanceState.containsKey(KEY)==true)// savedInstanceState , KEY EditText , EditText
{
txt.setText(savedInstanceState.getString(KEY));
}
btn=(Button)findViewById(R.id.btn);
Log.i(TAG, "MainActivity-->onCreate");
btn.setOnClickListener(listener);
}
private View.OnClickListener listener=new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
};
@Override
protected void onSaveInstanceState(Bundle outState)// Activity , onStop , onSavedInstanceState
{
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
String content=txt.getText().toString();// EditText Bundle , Activity
outState.putString(KEY, content);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}