为什么我的webview片段在旋转屏幕时变为空?Android-Java
我的主要班级:为什么我的webview片段在旋转屏幕时变为空?Android-Java,java,android,android-fragments,webview,Java,Android,Android Fragments,Webview,我的主要班级: package edu.temple.webbrowser; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTran
package edu.temple.webbrowser;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.content.Context;
import android.os.Bundle;
import android.util.AttributeSet;
import android.view.View;
import android.view.WindowManager;
import android.widget.Toast;
public class BrowserActivity extends AppCompatActivity implements PageControlFragment.SendURLInterface, PageControlFragment.goBackInterface, PageControlFragment.goNextInterface, PageViewerFragment.SetURLInterface, PageViewerFragment.resetUrlInterface {
PageControlFragment PCFrag = new PageControlFragment();
PageViewerFragment PVFrag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("Browser Activity");
if(getSupportFragmentManager().findFragmentById(R.id.page_viewer) == null && getSupportFragmentManager().findFragmentById(R.id.page_control) == null){
PVFrag = new PageViewerFragment();
FragmentManager FM = getSupportFragmentManager();
FragmentTransaction FT = FM.beginTransaction();
FT.add(R.id.page_viewer, PVFrag);
FT.add(R.id.page_control, PCFrag);
FT.commit();
}
}
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
public void SendURL(String URL){
String reqStr = "https://";
if(!URL.substring(0,reqStr.length()).equals(reqStr)){
URL = reqStr.concat(URL);
}
PVFrag.setURL(URL);
PCFrag.setText(PVFrag.getURL());
}
@Override
public void SetURL() {
PCFrag.setText(PVFrag.getURL());
}
@Override
public void goBack() {
PVFrag.goBack();
}
public void goNext() {
PVFrag.goNext();
}
public void resetUrl(){
String reset = PCFrag.getText();
PVFrag.setURL(reset);
}
}
片段:
public class PageViewerFragment extends Fragment {
WebView browser;
String reqStr = "https://";
private Bundle webViewBundle;
String url_ = "https://google.com";
public PageViewerFragment() {
// Required empty public constructor
}
public static PageViewerFragment newInstance() {
PageViewerFragment fragment = new PageViewerFragment();
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
browser.saveState(outState);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState == null) {
browser.loadUrl("https://www.google.com");
} else {
browser.restoreState(savedInstanceState.getBundle("web"));
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_page_viewer, container, false);
browser = v.findViewById(R.id.browser);
browser.setWebViewClient(new WebViewClient());
browser.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
((PageViewerFragment.SetURLInterface) getActivity()).SetURL();
}
});
return v;
}
public String boolString(boolean b){
if(b) return "true";
return "false";
}
public void goBack(){
if(browser.canGoBack()){
browser.goBack();
}
}
public void goNext(){
if(browser.canGoForward()){
browser.goForward();
}
}
public void setURL(String url) {
browser.loadUrl(url);
}
public String getURL(){
return browser.getUrl();
}
interface SetURLInterface {
void SetURL();
}
interface resetUrlInterface{
void resetUrl();
}
除了旋转屏幕,webview片段变为空外,其他一切都正常工作。我花了很多时间在帖子中寻找解决方案。页面控件片段工作正常,当我单击go按钮将url发送到页面查看器时,程序崩溃