У меня есть ViewPager
, каждый из которых имеет вид WebView
. В Actionbar
У меня есть пункт меню, в котором пользователь может открыть веб-страницу в браузере по умолчанию, используя этот код:Запуск нового действия сбрасывает ViewPager
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(mUrl)));
Однако, если пользователь нажимает на ссылку в WebView
, затем открывает сайт в их браузер по умолчанию, затем возвращается к моему приложению, им показана оригинальная веб-страница, а не страница, на которую они нажали. Я думал об использовании startActivityForResult
вместо startActivity
, но это будет работать только в том случае, если я открыл новую активность в своем собственном приложении, не так ли?
Это код для моего ViewPager
:
Фрагмент
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);
}
}