这个代码怎么了?它总是将savedInstanceState返回为null

时间:2012-08-17 13:48:40

标签: java android

此代码始终将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);



}

2 个答案:

答案 0 :(得分:2)

他们的代码没有错。您在savedInstanceState方法中获得nullonCreate()的原因是因为您的活动是第一次创建的,因此不会有任何已保存的状态。< / 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
}