Android onBackPressed始终返回WebView而不是活动
我的片段上有一个网络视图。但是,我想在onBackPressed上调用一个方法,而不是在我的WebView上调用goBack。当我点击后退按钮时,我的WebView总是返回到上一页,根本不调用我的方法Android onBackPressed始终返回WebView而不是活动,android,android-fragments,methods,android-webview,back-button,Android,Android Fragments,Methods,Android Webview,Back Button,我的片段上有一个网络视图。但是,我想在onBackPressed上调用一个方法,而不是在我的WebView上调用goBack。当我点击后退按钮时,我的WebView总是返回到上一页,根本不调用我的方法 @Override public void onBackPressed() { if (getSupportFragmentManager().findFragmentByTag("myTag") != null) { if(myWebView.canGoBack(
@Override
public void onBackPressed() {
if (getSupportFragmentManager().findFragmentByTag("myTag") != null) {
if(myWebView.canGoBack())
//myWebView.goBack();
}else {
super.onBackPressed();
saveAllData();
}
}else{
super.onBackPressed();
saveAllData();
}
}
我尝试了不同的方法,但不起作用,请参见以下内容:
编辑1:
关于我的碎片1:
public void backButtonWasPressed() {
saveAllData();
}
关于我的活动:
@Override
public void onBackPressed() {
super.onBackPressed();
FragmentManager fm = getSupportFragmentManager();
TopicFragment fragment1 = (TopicFragment)fm.findFragmentById(R.id.content_frame);
fragment1.backButtonWasPressed();
}
请帮忙
谢谢这是因为您正在将片段添加到backstack。因此,在提交片段事务之前,请添加以下代码
transaction.addToBackStack(null);
例如:
// Create new fragment and transaction
Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
// Commit the transaction
transaction.commit();
您应该将saveAllData置于暂停状态,这是一种方式。但是,它在反压状态下是如何工作的呢?我想要的是当用户点击设备上的Backback按钮,然后saveAllData执行。我有addToBackStacknull,即使我没有使用Backback。我的WebView仍然集中,当我点击backbutton时,我的WebView返回到上一页。我有其他代码,请参见上面的编辑1。但仍然不起作用。