Android 启动新活动将重置ViewPager
我有一个Android 启动新活动将重置ViewPager,android,android-webview,android-viewpager,Android,Android Webview,Android Viewpager,我有一个ViewPager,每个视图都是WebView。在Actionbar中,我有一个菜单项,用户可以使用以下代码在默认浏览器中打开网页: startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(mUrl))); 但是,如果用户单击WebView中的链接,然后在其默认浏览器中打开网站,然后返回到我的应用程序,则会显示原始网页,而不是他们单击的页面。我考虑过使用startActivityForResult而不是startActivity
ViewPager
,每个视图都是WebView
。在Actionbar
中,我有一个菜单项,用户可以使用以下代码在默认浏览器中打开网页:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(mUrl)));
但是,如果用户单击WebView
中的链接,然后在其默认浏览器中打开网站,然后返回到我的应用程序,则会显示原始网页,而不是他们单击的页面。我考虑过使用startActivityForResult
而不是startActivity
,但这只有在我自己的应用程序中打开一个新的活动时才会起作用,对吗
这是myViewPager的代码:
片段
public class Browser extends SherlockFragment {
private String mUrl;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
activity = getActivity();
setHasOptionsMenu(true);
mUrl = GetUrl();
mWebView = (WebView)getView().findViewById(R.id.webview);
mWebView.loadUrl(mUrl);
mWebView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
}
@Override
public boolean onOptionsItemSelected(final MenuItem item)
{
if (item.getItemId() == R.id.open) {
this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(mUrl)));
return true;
} else {
return super.onOptionsItemSelected(item);
}
}
}
活动
public class BrowserPager extends SherlockFragmentActivity implements Interfaces.OnBrowserSetTitle {
@Override
public void onCreate(final Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.browser_pager);
}
}
没关系,我是个白痴。我正在重置活动
的onResume
中的ViewPager
,导致网页重置。移动代码将ViewPager
重置为onCreate
修复了我的问题