Android 如何使用媒体控制器上的“后退”按钮反转片段事务?
当用户点击后退按钮时,我试图反转一个片段事务以使用户返回到上一个片段。问题是,有一个媒体控制器,因此,后退按钮事件将由dispatchKeyEvent处理。我尝试按如下方式手动调用onBackPressed,但收到空指针异常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
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在片段中声明此方法。