2013-03-31 3 views
0

У меня есть 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); 
    } 
} 

ответ

0

Nevermind, я идиот. Я сбросил ViewPager в onResumeActivity, что вызывало перезагрузку веб-страницы. Перемещение кода для сброса ViewPager на onCreate исправил мою проблему.