4

我的问题真的很简单。我似乎无法弄清楚为什么它会抛出这种错误(补充一点,我从来没有真正使用过 Java,但现在必须使用一个简单的 android 应用程序)。

在我的活动课中,我声明:

private MyWebView web;

在“onCreate”方法中,我这样做:

try {
    web = (MyWebView)findViewById(R.id.webview);
}
catch(Exception e) {
    Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT);
}

“MyWebView”类如下所示:

import android.app.AlertDialog;
import android.content.Context;
import android.util.AttributeSet;
import android.webkit.WebView;


public class MyWebView extends WebView {
    public MyWebView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onScrollChanged(int l, int t, int oldl, int oldt) {
    }
}

这会引发一个带有 detailMessage = "android.webkit.WebView.

我真的很感激一些帮助。

谢谢

4

2 回答 2

13

布局中的名称是错误的一件事。在我再次尝试后,它再次出错,但这次它触发了“MethodNotFoundException”。看来您必须实现此构造函数

MyWebView(Context context, AttributeSet attrs)

而不是这个

MyWebView(Context context, AttributeSet attrs, int defStyle)

就像日食所暗示的......

于 2012-06-07T10:23:52.363 回答
10

您必须在布局中像这样命名您的自定义 WebView:

<yourpackagename.MyWebView
  android:id="@+id/webview"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" 
 />

yourpackagename: 是你贴花 MyWebView 类的包的名称

于 2012-06-06T19:55:33.950 回答