2017-02-20 5 views
0

私は、その中にいくつかのビューを持つフラグメントを持っています。私はそれに戻るボタンをキャッチしたいので、その中の特定のビューが選択されている場合は、ボタン押下を省略し、その特定のビューが選択されていない場合は、条件付きで断片のボタンを取り戻す

View v = inflater.inflate(R.layout.home_page, paramViewGroup, false); 
v.setFocusableInTouchMode(true); 
    v.requestFocus(); 
    v.setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_BACK) { 
       if (fab.isSelected()) { 
        hideMenu(); 
        fab.setSelected(!fab.isSelected()); 
       } 
       // else 
       //  How back button do its habitual job? 
       // 
       return true; 
      } else { 
       return false; 
      } 
     } 
    }); 

バックボタンが習慣的な仕事をするコードを変更するにはどうすればよいですか?

現在のコードでは、戻るボタンは決してホームページのアプリケーションを終了しません。

+1

'getActivity()。onBackPressed;' – Belzebub

+1

単純な答えは 'onBackPressed();'を呼び出すことです。 –

答えて

0

アクティビティスコープのonBackPressed()メソッドをオーバーライドし、onOptionsItemSelectedメソッドから呼び出す必要があります。

@Override 
public void onBackPressed() 
{ 
    super.onBackPressed(); 
    // Do your things. 
} 

public void method() 
{ 
    onBackPressed(); 
} 

あなただけのパラメータで別のものを作成し、onBackPressed方法では、いくつかの複雑なロジックを追加したい場合。

public void myOnBackPressed(int param1, String param2) 
{ 
    // Do your complex logic. 
    onBackPressed(); 
} 

public void method() 
{ 
    myOnBackPressed(myInt, myString); 
} 
0

コードでは、return trueを設定します。それはあなたがバックボタンを処理することを意味し、あなたはバックボタンを押し出すことを望まない。 の方法でonBackPressed()に電話をかけると、ボタンを外側に戻すことができます。または、フラグメントのonBackPressed()に戻るボタンを処理することもできます。

関連する問題