2016-05-26 7 views
-1

私のアプリで3つのアクティビティA B Cがあるとします。私は自分のアクティビティAにボタンを持っています。これをクリックするとアクティビティAの文字列が保存され、インテントを使ってアクティビティBに移動します。アクティビティBでは、getIntent()。getExtras()。getString( "SomeKey");を使用してそのStringを受け取ります。アクティビティBのボタンを使用して、インテントを使用してその文字列でアクティビティCに再び移動し、アクティビティCでgetIntent()を使用してその文字列を再度受け取ります。アクティビティCのツールバーにホームボタンがあります。ここでは、私のメニューでNavUtils.navigateUpFromSameTask(this)を使用しました。アクティビティBに戻るには、そうすることで、アプリケーションは、getIntent()。getExtras()。getString( "SomeKey");行でnullPointerExceptionと言ってクラッシュします。 getIntent()に何もないので、明らかにそうでなければなりません。アクティビティBでnavutilsを使って以前の活動に戻る方法

nullポインタの例外を防ぐために私はif(getIntent()。getExtras()!= null)で囲まれています。それはまともなアクティビティBになります。しかし、同じアクティビティBアクティビティCのgetIntent()がNULLPointerExceptionという理由で再びクラッシュする

これを処理する方法を提案してください。アドバンス

答えて

0

使用getIntent().hasExtra(key)

感謝。

または、この方法であなたに合っている場合は、インテントから追加情報を得るときにデフォルト値を使用することができます。

+0

アクティビティから来ている間に自分のアクティビティBに値が必要なので、デフォルト値を使用できません –

+0

しかし、** hasExtra(String name)**についてはどうですか? –

関連する問題