android - fragment 中的 Onbackpressed 在实现接口(interface)时不起作用

标签 android android-fragments

我正在尝试覆盖 fragment 中的 onbackpressed 方法。但它给了我语法错误,它应该覆盖接口(interface)中的 super 方法。为什么这样?我的 fragment 类中还有其他方法,如 ondestroy,但没有错误。何必为此孤苦伶仃。我也试过 onkeydown。同样的错误。粘贴在我的代码下方。

  public TestClass extends Fragment implements    Testinterface
{  @Override //error must override or implement    supertype method
 public void onBackPressed ()
{
 if (check)
Do somethin
 else
  getActivity().finish ()
  //super.onBackPressed () // error here if I use this
  }

最佳答案

您必须在 fragment 中实现按键按下,检查按键代码。 onBackPress() 方法可以在 Activity 中使用——它是 fragment 的逻辑父级。

试试这个:

frag.getView().setFocusableInTouchMode(true);
frag.getView().setOnKeyListener( new OnKeyListener(){
    @Override
    public boolean onKey( View v, int keyCode, KeyEvent event ){
        if( keyCode == KeyEvent.KEYCODE_BACK ){
            return true;
        }
        return false;
    }
} );

关于android - fragment 中的 Onbackpressed 在实现接口(interface)时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24075068/

相关文章:

Android 相对布局选择器

java - 如何在 fragment 中使用方法?

java - 与 com.google.android.gms.maps.SupportMapFragment 的另一个 fragment 重复 ID、标记 null 或父 ID 0x0

java - 如何从底部导航 fragment 移动到其他 fragment

android - Fragment 的 getView() 在 OnClickListener 回调中返回 null

javascript - 应用程序加载前启动屏幕后显示的白页(cordova-Android)

android, list 显示 android :targetSdkVersion 错误

android - css 形式 android

Android 2.1 之前的 Android 电视直播

android - 从自定义 View 启动 AsyncTask 的最佳实践