此代码始终将savedInstanceState
作为null
public class DemoidActivity extends Activity implements OnClickListener, android.view.View.OnClickListener {
EditText t1=null;
EditText t2=null;
EditText t3=null;
EditText t4=null;
String data1 = null,data2=null,data3=null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
t1=(EditText)findViewById(R.id.editText1);
t2=(EditText)findViewById(R.id.editText2);
t3=(EditText)findViewById(R.id.editText3);
t4=(EditText)findViewById(R.id.editText4);
Button b1=(Button)findViewById(R.id.button1);
Button b2=(Button)findViewById(R.id.button2);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
}
答案 0 :(得分:2)
他们的代码没有错。您在savedInstanceState
方法中获得null
为onCreate()
的原因是因为您的活动是第一次创建的,因此不会有任何已保存的状态。< / p>
只有在实现onSaveInstanceState()方法时才会设置它。 http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os.Bundle)
答案 1 :(得分:1)
这意味着您的活动状态永远不会被保存
尝试覆盖onSaveInstanceState()
方法:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//Put your stuff in the bundle
}
然后使用它来检索数据/活动状态,无论是onCreate()
方法还是onRestoreInstanceState()
方法:
if (savedInstanceState != null) {
//Retrieve data
}