0
Ich habe ein Webview-Fragment, aber alle Fragmente sind nur in eine Aktivität. Keine der gestellten Fragen befriedigt meine Bedürfnisse, da sie alle mehr als eine Aktivität beinhalten. Wenn ich zwei Fragmente habe, die beide Webviews haben, wie kann ich den Zustand eines Webview speichern, während ich mir ein anderes ansehe.Wie speichere ich den Status eines Webview-Fragments?
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;
}
}
}
ich ein Versuch schwächer zuweisen Zugriffsfehler –
Ja, dies nicht funktioniert –