我有一个Webview片段,但所有片段只在一个活动中。所提出的问题都不能满足我的需求,因为它们都涉及多个活动。如果我有两个片段都有Webview,我怎么能保存一个Webview的状态,而我看另一个。
public class New_Main extends AppCompatActivity {
FloatingActionButton FAB;
InterstitialAd mInterstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new__main);
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("ca-app-pub-2782489082981141/4483575512");
AdRequest adRequest = new AdRequest.Builder().build();
mInterstitialAd.loadAd(adRequest);
mInterstitialAd.setAdListener(new AdListener(){
@Override
public void onAdLoaded(){
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}
@Override
public void onAdOpened(){
}
@Override
public void onAdFailedToLoad(int errorCode){
}
});
FAB = (FloatingActionButton) findViewById(R.id.fab);
FAB.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Uri link = Uri.parse("https://quizlet.com/");
Intent intent = new Intent();
intent = new Intent(Intent.ACTION_VIEW, link);
String title = "Open Quizlet With:";
startActivity(intent);
}
});
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
// Setup spinner
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setAdapter(new MyAdapter(
toolbar.getContext(),
new String[]{
"iNow",
"Moodle",
"Grade Calculator",
"Chalkable",
}));
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// When the given dropdown item is selected, show its contents in the
// container view.
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, PlaceholderFragment.newInstance(position + 1))
.commit();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_new__main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
private static class MyAdapter extends ArrayAdapter<String> implements ThemedSpinnerAdapter {
private final ThemedSpinnerAdapter.Helper mDropDownHelper;
public MyAdapter(Context context, String[] objects) {
super(context, android.R.layout.simple_list_item_1, objects);
mDropDownHelper = new ThemedSpinnerAdapter.Helper(context);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view;
if (convertView == null) {
// Inflate the drop down using the helper's LayoutInflater
LayoutInflater inflater = mDropDownHelper.getDropDownViewInflater();
view = inflater.inflate(android.R.layout.simple_list_item_1, parent, false);
} else {
view = convertView;
}
TextView textView = (TextView) view.findViewById(android.R.id.text1);
textView.setText(getItem(position));
return view;
}
@Override
public Theme getDropDownViewTheme() {
return mDropDownHelper.getDropDownViewTheme();
}
@Override
public void setDropDownViewTheme(Theme theme) {
mDropDownHelper.setDropDownViewTheme(theme);
}
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
/**
* The fragment argument representing the section number for this
* fragment.
*/
private static final String ARG_SECTION_NUMBER = "section_number";
public PlaceholderFragment() {
}
/**
* Returns a new instance of this fragment for the given section
* number.
*/
public static PlaceholderFragment newInstance(int sectionNumber) {
PlaceholderFragment fragment = new PlaceholderFragment();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}
private class SSLTolerentWebViewClient extends WebViewClient {
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed(); // Ignore SSL certificate errors
}
}
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_new__main, container, false);
WebView myWebView = (WebView) view.findViewById(R.id.webview);
AdView mAdView = (AdView) view.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
myWebView.setWebViewClient(new SSLTolerentWebViewClient());
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setAllowContentAccess(true);
webSettings.setAllowFileAccess(true);
webSettings.setAppCacheEnabled(true);
webSettings.setDatabaseEnabled(true);
webSettings.setSaveFormData(true);
webSettings.setBuiltInZoomControls(true);
int section = getArguments().getInt(ARG_SECTION_NUMBER);
if (section == 1) {
myWebView.loadUrl("https://sis-limestoneco.chalkableinformationnow.com/InformationNow/Login.aspx?ReturnUrl=%2finformationnow");
return view;
} else if (section == 2) {
myWebView.loadUrl("http://moodle.lcsk12.org/login/index.php");
return view;
} else if (section == 4) {
myWebView.loadUrl("https://classroom.chalkable.com/Home/student.aspx");
}
return view;
}
}
}
答案 0 :(得分:0)
您可以使用此代码:
private WebView webView;
private Bundle webViewBundle;
@Override
public void onPause()
{
super.onPause();
webViewBundle = new Bundle();
webView.saveState(webViewBundle);
}
@Override
protected void onCreate(Bundle webViewBundle ) {
super.onCreate(webViewBundle );
if (webViewBundle != null)
{
webView.restoreState(webViewBundle);
}
}