私のアプリで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という理由で再びクラッシュする
これを処理する方法を提案してください。アドバンス
アクティビティから来ている間に自分のアクティビティBに値が必要なので、デフォルト値を使用できません –
しかし、** hasExtra(String name)**についてはどうですか? –