【问题标题】:Enable/Disable WebView In another activity在另一个活动中启用/禁用 WebView
【发布时间】:2017-07-26 13:06:54
【问题描述】:

我想以这样的方式实现 WebView,它应该在一个 Activity 中实例化(以及加载 html)它不应该在第一页上可见,并且只有 webview 在另一个 Activity 中可见。我尝试了以下方式,但无法实现,以下是我的 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,

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

我是android世界的新手,正在苦苦挣扎,请任何人都可以帮助我解决这个问题。

【问题讨论】:

    标签: java android eclipse


    【解决方案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;
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      相关资源
      最近更新 更多