2016-05-08 7 views
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; 
    } 
} 

}

Antwort

0

Sie diesen Code verwenden können:

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); 
     } 
} 
+0

ich ein Versuch schwächer zuweisen Zugriffsfehler –

+0

Ja, dies nicht funktioniert –

Verwandte Themen