Android 如何使用媒体控制器上的“后退”按钮反转片段事务?

Android 如何使用媒体控制器上的“后退”按钮反转片段事务?,android,android-fragments,transactions,mediacontroller,onbackpressed,Android,Android Fragments,Transactions,Mediacontroller,Onbackpressed,当用户点击后退按钮时,我试图反转一个片段事务以使用户返回到上一个片段。问题是,有一个媒体控制器,因此,后退按钮事件将由dispatchKeyEvent处理。我尝试按如下方式手动调用onBackPressed,但收到空指针异常 MainActivity obj; public boolean dispatchKeyEvent(KeyEvent event) { obj = new MainActivity(); int keyCode = event.getK

当用户点击后退按钮时,我试图反转一个片段事务以使用户返回到上一个片段。问题是,有一个媒体控制器,因此,后退按钮事件将由dispatchKeyEvent处理。我尝试按如下方式手动调用onBackPressed,但收到空指针异常

MainActivity obj;

  public boolean dispatchKeyEvent(KeyEvent event) {
        obj = new MainActivity();
        int keyCode = event.getKeyCode();
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            System.out.println(obj);
            obj.onBackPressed();
        }
        return super.dispatchKeyEvent(event);
    }
在我的主要活动中,我的片段事务如下所示:

            transaction = getSupportFragmentManager().beginTransaction();
            transaction.replace(R.id.fragment_container, newFragment);
            transaction.addToBackStack(null);
            transaction.commit();
我能处理back按钮的最佳方式是什么,以反转片段事务和MediaController


谢谢

重写此片段方法以获取活动对象的引用

MainActivity obj;
@Override
public void onAttach(Context context) {
    super.onAttach(context);
    obj = (MainActivity) obj;    
}

删除
dispatchKeyEvent()

中的对象创建您好,我尝试了此操作,但它向我标记了一个错误,表示无法解析方法onAttach。我是否在MediaController类或主活动中声明此方法?@LewWeiHao在片段中声明此方法。