2017-08-15 18 views
1

ツールバーのバック矢印をクリックしたときにアクションバーの後ろ矢印をアニメーションに修正するように定義した後、警告が返されます。この警告を取り除く最善の方法は何ですか?'FLAG_ACTIVITY_NO_ANIMATION'を宣言した後にNullPointerException警告が表示される

メソッド呼び出し 'addFlags' を生成することができる 'java.lang.NullPointerExceptionが'

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId() == android.R.id.home) { 
     final Intent intent = getParentActivityIntent(); 
     intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
     onBackPressed(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
+1

インテントを抑制または無効にします。 –

+0

警告に従ってインテントがnullになることがあります。それ以外に、 'getParentActivityIntent'のいくつかのメソッドパラメータが欠落していませんか? –

答えて

1

if intent!= nullにラップします。

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId() == android.R.id.home) { 
     final Intent intent = getParentActivityIntent(); 
     if(intent != null){ 
      intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
     }else{ 
      //Do some error handling. 
     } 
     onBackPressed(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
0

getParentActivityIntentのドキュメントから:

@return:標的新しいインテントこのアクティビティの定義済みの親であるか、または有効な親が存在しない場合はnullです。

このメソッドは、親がない場合のみnullを返します。Activity戻り値として@Nullableアノテーションをマークしました。だからあなたは警告を受けている。

マニフェストに親Activityを定義していることが確実であれば、NullPointerExceptionを気にする必要はありません。この警告を抑制することができます。

抑制するには、@SuppressWarnings("ConstantConditions")をメソッドに追加する必要があります。

警告を表示しない理由を説明する注釈の上にコメントを追加することをお勧めします。

関連する問題