-1

このコードは常に次のように返さ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);



}
4

2 に答える 2

2

それらは、コード自体に問題はありません。savedInstanceStateメソッドでasnullを取得する理由onCreate()は、アクティビティが初めて作成されるため、保存された状態が存在しないためです。

メソッド 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 に答える