首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何禁用android fragment类中按下的后退按钮

如何禁用android fragment类中按下的后退按钮
EN

Stack Overflow用户
提问于 2013-07-19 13:53:18
回答 10查看 44.2K关注 0票数 28

我想禁用片段类中的后退按钮。在这个片段中,onBackPressed()似乎不起作用。我怎么能禁用后退按钮呢?

这是我的示例代码:

代码语言:javascript
复制
public class Login extends Fragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
       ,Bundle savedInstanceState) {
        ViewGroup root = (ViewGroup) inflater.inflate(R.layout.login, null);
        return root;
    }

    public void onBackPressed() {
    }
}
EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2013-07-19 14:13:16

您必须重写父FragmentActivity类的onBackPressed。因此,将您的代码放在父FragmentActivity中。或者,您可以使用以下代码调用父方法:

代码语言:javascript
复制
public void callParentMethod(){
    getActivity().onBackPressed();
}

在FragmentActivity中,覆盖onBackPressed方法且不调用其超类来禁用back按钮。

代码语言:javascript
复制
@Override
public void onBackPressed() {
  //super.onBackPressed();
  //create a dialog to ask yes no question whether or not the user wants to exit
  ...
}
票数 22
EN

Stack Overflow用户

发布于 2016-03-21 18:40:02

在您的oncreateView()方法中,您需要编写以下代码,并且在KEYCODE_BACk中,如果返回为true,那么它将停止特定片段的后退按钮选项

代码语言:javascript
复制
     View v = inflater.inflate(R.layout.xyz, container, false);
    //Back pressed Logic for fragment  
    v.setFocusableInTouchMode(true);  
    v.requestFocus();  
    v.setOnKeyListener(new View.OnKeyListener() {  
    @Override  
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            if (keyCode == KeyEvent.KEYCODE_BACK) {

                return true;  
            }  
        }  
        return false;  
    }  
});
票数 12
EN

Stack Overflow用户

发布于 2015-06-29 19:36:52

在您的家长活动中

代码语言:javascript
复制
@Override
public void onBackPressed() {

    Fragment f = getSupportFragmentManager().findFragmentById(R.id.content_frame);
    if (f instanceof yourfragment) {//the fragment on which you want to handle your back press
        Log.i("BACK PRESSED", "BACK PRESSED");
    }else{
        super.onBackPressed();
    }
}
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17738966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档