2017-07-26 10 views
0

WebViewを1つのアクティビティ(htmlの読み込みと同時に)でインスタンス化し、最初のページに表示してはならず、webviewだけが別のアクティビティで表示されるようにしたい。私は、次の方法を試してみましたが、それを達成することができない、私は誰も私を助けることができますしてくださいそれに苦労し、アンドロイドの世界に新しいです、WebViewを有効/無効にする別のアクティビティで

public class SecondActivity extends Activity{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.second_layout); 

     Intent intent = getIntent(); 

     WebView webview = (WebView) findViewById(R.id.webview1);//at this line I am getting exception, I think because webview is in activity_main layout. 
     webview.restoreState((Bundle) intent.getParcelableExtra("state")); 
     webview.getSettings().setJavaScriptEnabled(true); 
     webview.setVisibility(View.VISIBLE); 
    } 
} 

次は私のMainActivity

public class MainActivity extends Activity { 

    private WebView webView = null; 
    private Button startAppBtn = null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     createWebView(); 

     startAppBtn = (Button) findViewById(R.id.button1); 

     startAppBtn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
        Intent intent = new Intent(context, SecondActivity.class); 
        Bundle bundle = new Bundle(); 
        intent.putExtra("state",bundle); 
        webView.saveState(bundle); 
        startActivity(intent); 
      } 
     }); 
    } 

    public void createWebView(){ 
     setWebView((WebView) findViewById(R.id.webview1)); 
     getWebView().getSettings().setJavaScriptEnabled(true); 
     getWebView().getSettings().setDatabaseEnabled(true); 
     getWebView().getSettings().setLoadWithOverviewMode(true); 

     getWebView().setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY); 
     getWebView().setScrollbarFadingEnabled(false);  
     getWebView().loadUrl("file:///android_asset/My.html"); 
     getWebView().setVisibility(View.GONE); 
    } 

    public WebView getWebView() { 
     return webView; 
    } 

    public void setWebView(WebView webView) { 
     this.webView = webView; 
    } 
} 

であり、次はSecondActivityですこの問題を解決する

答えて

1

希望これは

最初の活動

startAppBtn = (Button) findViewById(R.id.button1); 

    startAppBtn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
         Intent intent = new Intent(this, SecondActivity.class); 
    Bundle bundle = new Bundle(); 
    bundle.putString("websiteURL", "file:///android_asset/My.html"); 
    intent.putExtras(bundle); 
    startActivity(intent); 
     } 
    }); 

セカンド活動

String sWebsite; 
    Bundle bundle = getIntent().getExtras(); 
    if (bundle != null) 
    { 
     sWebsite = bundle.getString("websiteURL"); 
    } 
    else if (bundle== null) 
    { 
     System.out.println("Null"); 
    } 

    WebView webView = (WebView) findViewById(R.id.webview1); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.loadUrl(sWebsite); 
    webView.setWebViewClient(new WebViewClient() 
    { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) 
     { 
      return false; 
     } 
    }); 
を支援
関連する問題