Проблема такая, есть динамический фрагмент, в котором находится WebView. При повороте устройства, состояние WebView не сохраняется. Как сохранять состояние WebView?
Это если кратко, подробнее вот код:
MainActivity:
package com.example.mrbik_000.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity implements FInterface {
private WebView webView;
private MyFragment myFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState != null) {
myFragment = (MyFragment) getSupportFragmentManager().findFragmentById(R.id.container);
myFragment.setFragmentListener(this);
} else {
myFragment = new MyFragment();
myFragment.setFragmentListener(this);
getSupportFragmentManager().beginTransaction().add(R.id.container, myFragment).commit();
}
}
public void fragmentInitialized() {
if (webView == null) {
webView = (WebView) findViewById(R.id.webView);
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://stackoverflow.com/");
}
}
}
Fragment:
package com.example.mrbik_000.myapplication;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class MyFragment extends Fragment {
private FInterface listener;
private View view;
public void setFragmentListener(FInterface listener) {
this.listener = listener;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
listener.fragmentInitialized();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment, container, false);
return view;
}
}
Interface:
package com.example.mrbik_000.myapplication;
import android.os.Bundle;
public interface FInterface {
void fragmentInitialized();
}
MainActivity имплементирует интерфейс FInterface, для того, что бы из этой активити можно было получить объект WebView.