0

私は、ViewPager各ビューが である を持っていWebViewます。[ ActionbarI have a] メニュー項目では、ユーザーは次のコードを使用して既定のブラウザーで Web ページを開くことができます。

  startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(mUrl)));

ただし、ユーザーが のリンクをクリックし、WebView既定のブラウザーでサイトを開き、アプリに戻ると、クリックしたページではなく、元の Web ページが表示されます。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);
    }
}
4

1 に答える 1

0

気にしないで、私はばかです。の をリセットしてViewPagerいたonResumeためActivity、Web ページがリセットされていました。コードを移動してリセットするViewPageronCreate、問題が修正されました。

于 2013-03-31T19:06:33.757 に答える