-1

此代码始终返回savedInstanceStatenull

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);



}
4

2 回答 2

2

他们对这样的代码没有任何问题。您在方法中获得savedInstanceStateas的原因是因为您的活动是第一次创建的,因此不会有任何已保存的状态。nullonCreate()

仅当您实现 onSaveInstanceState() 方法时才会设置它。 http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os.Bundle )

于 2012-08-17T14:38:18.723 回答
1

这意味着您的活动状态永远不会被保存。
尝试覆盖该onSaveInstanceState()方法:

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    //Put your stuff in the bundle
}

然后使用它来检索数据/活动状态,无论是在onCreate()方法中还是在方法中onRestoreInstanceState()

if (savedInstanceState != null) {
    //Retrieve data
}
于 2012-08-17T14:43:22.157 回答