2017-02-20 41 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() в onKey() метод испускать кнопку возврата на улицу. Или вы можете обработать кнопку возврата в onBackPressed() фрагмента.