2016-04-01 5 views
0

私のアプリでは、クリックすると、ユーザーにメッセージングの操作を許可する通知があります。現在、バックナビゲーションを押すと、単にアプリとアクティビティが終了します。通知後に戻るナビゲーションを許可する

バックボタンを押した後、メインアクティビティ(引き出しのナビゲーションを含む)を開き、特定のフレンドメッセージリストのフラグメントを開くように設定するにはどうすればよいですか? (その後、アプリ内でのさらなるナビゲーションが可能)

+0

このリンクをご覧くださいhttp://stackoverflow.com/a/24680199/3378714これは既にここで答えられています。 – Sushant

答えて

0

私のアプリでこれを処理する方法は、onKeyDown()メソッドをオーバーライドすることです。 onBackPressed()を上書きすることもできますが、それは過去に私に問題をもたらしました。このようにしています。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if(keyCode == KeyEvent.KEYCODE_BACK) { 
     //do any cleanup you need to do 
     Intent upIntent = new Intent(this, MainActivity.class); 
     startActivity(upIntent); 
     return true; 
    } else { 
     return false; 
    } 
} 

複数の他の活動から開始することができる活動のナビゲーションを処理するために、私は通常、それをチェックし、それを保存し、現在の活動を開始した活動の「署名」を表す文字列を渡します後で上のナビゲーションボタンがどこにナビゲートすべきかを知ることができます。次に私のonOptionsItemSelected()メソッドでは、格納された "コールシグネチャ"文字列を使用してこのアクティビティを開始したアクティビティをチェックし、それに戻ります。このように...

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    switch(id) { 
     case android.R.id.home: 
      Intent upIntent = null; 
      switch(callingActivitySignature) { 
       case MainActivity.CALL_SIGNATURE: 
        upIntent = new Intent(this, MainActivity.class); 
        break; 
       case SecondActivity.CALL_SIGNATURE: 
        upIntent = new Intent(this, SecondActivity.class); 
        break; 
       case ThirdActivity.CALL_SIGNATURE: 
        upIntent = new Intent(this, ThirdActivity.class); 
        break; 
      } 

      if(upIntent != null) { 
       startActivity(upIntent); 
      } 
      return true; 
    } 
    return false; 
} 
関連する問題