我正在尝试在我的应用中显示一个网页。这就是我所做的:
在我的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();
}
});
}
但我收到以下错误:
我做错了什么?
答案 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);