Evitar / prevenir que un fragmento se refresque al cambiar las pestañas

Sé que hay un montón de preguntas sobre este tema, pero no puedo conseguir que funcione en mi aplicación. Mi problema es. Tengo una aplicación con 4 pestañas. En 3 de ellos hay un webView . Cada vez que cambio Tabs todo el fragment acaba de recargar. Quiero que lo vuelva a cargar. Así que cuando perdí mi conexión a Internet todavía mostrará la página que estaba abierta.

Esta es mi actividad principal:

 public class MainActivity extends FragmentActivity { private FragmentTabHost TabHost; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //instellingen laden final SharedPreferences settings = getSharedPreferences("Leerling", 0); //lln laden int lln = settings.getInt("lln", 0); if(lln == 0) { //alert maken AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setTitle("Welkom"); alert.setMessage("Vul je LLN in:"); // EditText maken final EditText input = new EditText(this); input.setInputType(InputType.TYPE_CLASS_NUMBER); alert.setView(input); //ga knop alert.setPositiveButton("Ga", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { //String text = input.getEditableText().toString(); int lln = Integer.parseInt(input.getEditableText().toString()); SharedPreferences.Editor editor = settings.edit(); editor.putInt("lln", lln); editor.commit(); } }); //stop knop alert.setNegativeButton("Stop", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { // Canceled. android.os.Process.killProcess(android.os.Process.myPid()); return; } }); alert.show(); } TabHost = (FragmentTabHost)findViewById(android.R.id.tabhost); TabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); //tab1 toevoegen TabHost.addTab(TabHost.newTabSpec("tab1").setIndicator("Rooster"), Tab1.class, null); //tab2 toevoegen TabHost.addTab(TabHost.newTabSpec("tab2").setIndicator("Pers"), Tab2.class, null); //tab3 toevoegen TabHost.addTab(TabHost.newTabSpec("tab3").setIndicator("Wijzig"), Tab3.class, null); //tab4 toevoegen TabHost.addTab(TabHost.newTabSpec("tab4").setIndicator("Extra's"), Tab4.class, null); } 

Y esta es mi Tab1:

 public class Tab1 extends Fragment { private Bundle webViewBundle; private WebView webViewRooster; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View View = inflater.inflate(R.layout.activity_tab1, container, false); SharedPreferences settings = getActivity().getSharedPreferences("Leerling", 0); int lln = settings.getInt("lln", 0); webViewRooster = (WebView) View.findViewById(R.id.webViewRooster); webViewRooster.setWebViewClient(new WebViewClient()); if (webViewBundle == null) { Toast.makeText(getActivity(), "geladen voor eerste x", Toast.LENGTH_SHORT).show(); webViewRooster.loadUrl("http://www.idylank.x90x.net/rooster.php?lln=" + lln); } else{ Toast.makeText(getActivity(), "tweede of meer x", Toast.LENGTH_SHORT).show(); //webViewRooster.restoreState(webViewBundle); } return View; } public void onPause() { webViewBundle = new Bundle(); webViewRooster.saveState(webViewBundle); super.onPause(); } 

He intentado muchas cosas … Por favor ayuda.

Sé que es una solución loca, pero si estás tratando de dar al usuario "HTML visto por última vez" tal vez debería considerar el almacenamiento en caché el código HTML que se ha descargado con éxito y, a continuación, establecer este código HTML volver a la WebView si vuelve a fallar?

Evitar la recarga es probablemente mejor, pero en caso de que no encuentres nada más, mira este enlace para encontrar cómo tomar una copia del HTML descargado: ¿cómo obtener el contenido html desde una webview?

  • Android: GestureDetector no funciona (gestureDetector.onTouchEvent (evento) siempre es falso) con Tabs (TabActivity, Tabwidget)
  • Cómo evitar el parpadeo en la barra de acción mientras showinh y ocultarlo en el desplazamiento
  • PagerTabStrip: cambia el ancho de la pestaña
  • Cambiar la altura de la barra de acción en Android JellyBean
  • SlidingTabsBasic para tener slidingmenu, tabs, gridview
  • Menú diferente para diferentes pestañas en la pestaña + aplicación de desplazamiento para el proyecto android
  • Android WebView en diferentes pestañas
  • Android 2.1 NullPointerException con TabWidgets
  • EditText no recibe eventos clave TAB - stock soft vk
  • Android: "Tipo de navegación: Fijaciones fijas + Golpe"
  • Implementación de BackStack para Fragmentos en las pestañas de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.