应用程序中的Android Java Display网站

时间:2015-10-30 13:55:02

标签: java android

我正在尝试在我的应用中显示一个网页。这就是我所做的:

在我的Manifest中,我添加了以下代码:

<uses-permission android:name="android.permission.INTERNET" />

在我的content_main.xml中,我添加了以下代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">
        <WebView android:id="@+id/webView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
    </LinearLayout>

在我的主Activity.java文件中添加了以下代码:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        String url = "http://bigdaddyapp.com";

        webview = (WebView) findViewById(R.id.myWebView);
        //next line explained below
        webview.setWebViewClient(new MyWebViewClient(this));
        webview.getSettings().setJavaScriptEnabled(true);
        webview.loadUrl(url);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }

但我收到以下错误:

enter image description here

我做错了什么?

2 个答案:

答案 0 :(得分:4)

你这里有很多问题。

首先,您永远不会声明您的webView变量。 在这种情况下,修复很简单。您只需要内联定义其类型:

WebView webview = (WebView) findViewById(R.id.myWebView);

其次,您在布局XML中为WebView提供了ID“webView”,但您尝试通过R.id.myWebView引用它。切换它以使用相同的ID,它将起作用。

对于第三个错误,听起来你实际上没有一个名为MyWebViewClient的类。确保你做到并且公开。

您也没有设置正确的布局。您正在呼叫setContentView(R.layout.activity_main),但您的布局称为“content_main。”

一旦解决了这些问题,其余的错误就会消失。

答案 1 :(得分:0)

setContentView(R.layout.activity_main);

应该是:

setContentView(R.layout.content_main);