0

アクティビティをリロードして を渡そうとしてbundleいますが、空の (null) バンドルを取得しています。

リロード アクティビティ:

Intent intent = new Intent(MyActivity.this, MyActivity.class);
Bundle bundle = new Bundle();
bundle.putInt("key", 1);
intent.putExtras(bundle);
MyActivity.this.finish();
startActivity(intent);

onCreateアクティビティと私は取得する必要がありbundleます:

@Override
public void onCreate(Bundle savedInstance)
{
   if (savedInstance != null)
   {
   }
   else
   {
      Log.i("d", "IS NULL !");
   }
}

私はヌルになっています。

4

2 に答える 2

5

OnCreate()あなたはこのようにする必要があります:

if(getIntent().getExtras() != null) {
    Bundle extras = getIntent().getExtras();
    Log.i("Value", extras.getString("key"));
}

これの代わりに

if (savedInstance != null){
}
于 2013-09-17T08:49:12.790 に答える
2

最初にアクティビティを開始してから、次のように呼び出しfinish()ます。

Intent intent = new Intent(MyActivity.this, MyActivity.class);
Bundle bundle = new Bundle();
bundle.putInt("key", 1);
intent.putExtras(bundle);
startActivity(intent);
MyActivity.this.finish();

次に、次のようなバンドル エクストラを受け取ります。

Bundle bundle = getIntent().getExtras();

最後に、次のように正しいかどうかを確認する条件を設定できます。

if(bundle != null)
{
}
else
{
   Log.i("d", "IS NULL !");
}
于 2013-09-17T09:03:26.557 に答える