2014-04-01 32 views
0

我想要的是当设备旋转,FragmentActivity仍然保持。anadroid - 我想要的是当设备旋转,FragmentActivity仍然保持

在FragmentActivity中使用webview的Im。

我在清单中将android:configChanges =“orientation | keyboardHidden”添加到我的FragmentActivity中,当我旋转设备时,应用程序停止。

这是下面的main.java代码。

@Override 
    public void onConfigurationChanged(Configuration newConfig){  
      super.onConfigurationChanged(newConfig); 
    } 

这是下面的tab1.java。

public class Tab1 extends Fragment { 
     Context mContext; 

     WebView web ; 


     @Override 
     public View onCreateView(LayoutInflater inflater, 
       ViewGroup container, Bundle savedInstanceState) { 
       View mainView = (View) inflater.inflate(R.layout.activity_tab1, container, false); 
       web = (WebView) mainView.findViewById(R.id.webview1); 
       web.setWebViewClient(new WebClient()); 
       WebSettings set = web.getSettings(); 
       set.setJavaScriptEnabled(true); 
       web.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 

       web.loadUrl("http://google.com"); 
       //웹뷰에서 뒤로가기 
       web.setOnKeyListener(new OnKeyListener(){ 
        public boolean onKey(View v, int keyCode, KeyEvent event) { 
          if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) { 
           handler.sendEmptyMessage(1); 
           return true; 
          } 
          return false; 
        } 
       }); 
       return mainView; 
     } 
} 

我想在每次旋转手机时都保持webview。 有任何建议吗?

回答

0

要记住的东西,在旋转应用程序将调用onCreate。所以它基本上是每次旋转时重新创建你的应用程序。所以要解决这个问题。 (我认为)你需要在savedInstanceState中保存你的应用程序的状态,然后在旋转之后,从那里恢复你的状态。

0

如果你在,你将处理方向改变的清单已经规定了,你不想去通过正规的生命周期,在配置上的变化做这样的事情:

@Override 
public void onConfigurationChanged(Configuration newConfig){  
     super.onConfigurationChanged(null); 
} 

此外,如果你想要的是留住你的片段的情况下,你可以调用方法:

Fragment.setRetainInstance(true); 

其中按照谷歌文档“控件(如从配置变化的片段实例是否可以通过活动的再创造保留)“。

问候!

+0

Fragment.setRetainInstance(true); – younglee

相关问题