我正在尝试使用内置的后退按钮,使其在webview内或应用程序内(无论在哪里)返回1屏幕1,所以假设我有一个新闻部分并且我点击它,它将显示新闻页面。然后我点击搜索并转到webview,当我点击后面时,它应显示我上次打开的新闻栏目页面。此外,如果我在webview中并在webview中导航并单击返回,那么它应该在webview中显示一个页面。我添加了一些在webview中工作的后退代码。但是,它不适用于enws部分页面。它带我回到新闻栏目,而不是我在新闻栏目下打开的特定页面。如何修复我的代码以实现相同的目标?这是我为后面添加的代码:
private boolean goingBack = false;
private boolean onBackPressClearStack = true;
public void setOnBackPressClearStack(boolean b){
onBackPressClearStack = b;
}
public boolean webViewSteppedBack() {
if (mWebview != null && mWebview.canGoBack()) {
mWebview.goBack();
return true;
}
return false;
}
@Override
public boolean backPressed(final MainActivity mainActivity) {
if (webViewSteppedBack()) {
return true;
}
if (onBackPressClearStack) {
goingBack = true;
FragmentUtils.onBackPressedKnockFragsOffStack(mainActivity, this);
}
return false;
}
public static MyWebViewFragment newInstanceNoBackPressed(final FragmentManager manager, final String searchTerm, final String symbolType, int containerViewId) {
MyWebViewFragment fragment = __newInstance(new MyWebViewFragment(), manager, searchTerm, symbolType, containerViewId);
fragment.setOnBackPressClearStack(false);
return fragment;
}
public static MyWebViewFragment newInstanceNoBackPressed(final MyWebViewFragment fragment, final FragmentManager manager, final String searchTerm, final String symbolType, int containerViewId) {
fragment.setOnBackPressClearStack(false);
return __newInstance(fragment, manager, searchTerm, symbolType, containerViewId);
}
@Override
public void onResume() {
super.onResume();
final MainActivity activity = (MainActivity) getActivity();
activity.updateActionBarTitle();
activity.setBackPressListener(this);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (goingBack) {
return null;
}
final MainActivity activity = (MainActivity) getActivity();
activity.setBackPressListener(this);
View view = inflater.inflate(R.layout.fragment_search_answers, container, false);
my webview code.....
return view;
}
答案 0 :(得分:0)
您可以使用此处讨论的方法:Android - How To Override the "Back" button so it doesn't Finish() my Activity?如果您想按下后退按钮进行自己的操作。
此外,您可以提供如下所示的向上导航:http://developer.android.com/training/implementing-navigation/ancestral.html
我个人更喜欢第二个选项