2016-07-08 5 views
3

電話番号を「余分な」失いますが失われました - bundle.getInt()を呼び出すとき、上記のコードはNPEを投げます。私は、私が見逃している明白な何かがあると確信しています活動は、バンドルから(サービスで実行)

は...

+4

使用 'バンドルintentBundle = getIntent()getExtra();'としない私は使用されないのonCreate引数 –

+0

に1束引数onCreateから、しかし私が知る限り、getIntent()。getExtra();があります。メソッドを呼び出してバンドルを取得します。 – Bobby

答えて

4

あなたが読んでいるバンドルは、その目的のためではありません。 per docs

void onCreate (Bundle savedInstanceState) 

としてバンドル:アクティビティが以前 がシャットダウンされた後に再初期化されている場合、このバンドルは、それが最近onSaveInstanceState(バンドル)で を供給されたデータが含まれています。注:それ以外の場合はnullです。

あなたが呼び出す必要がエキストラを取得する必要がある場合:

Bundle extras = getIntent().getExtra(); 

をして、あなたの値を取得しようとすることができます:

int myVal = extras.getInt(key); 

代わりに使用しようとすることができます。

int myVal = getIntent().getIntExtra(key, defaultVal); 
+1

ありがとう、私は間違って 'onCreate'に与えられたバンドルが、私が意図と一緒に送ったバンドルだと仮定していました。 – fadedbee

0

あなたはgetIntent().getInt("text_seq")を使用してみましたか?

+2

あなたは 'getIntent()。getExtra()。getInt(" text_seq ");'という意味ですか? – Bobby

0

このような商品を入手する

@Override 
protected void onCreate(Bundle bundle) { 
    super.onCreate(bundle); 
    Bundle intentBundle = getIntent().getExtra(); 
    Log.d(TAG, "" + intentBundle.getExtra(“text_seq")) 
} 
0

使用しているバンドルはsavedInstanceStateです。詳しくはhereをご覧ください。あなたはIntent余分にバンドルを追加しましたので

Bundle intentBundle = getIntent().getExtra(); 

ので、あなたも、あなたがこのような個々の項目を取得することができますgetIntent().getExtra()

からそれを取得する必要があります:あなたが使用する必要がどのような

はこれです:

getIntent().getIntExtra("text_seq", defaultValToReturn); 
関連する問題