2017-02-20 43 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()的片段中处理返回按钮。