自定义 Webview 上的 ClassCastException
Posted
技术标签:
【中文标题】自定义 Webview 上的 ClassCastException【英文标题】:ClassCastException on custom Webview 【发布时间】:2013-10-17 14:32:01 【问题描述】:在我的 onCreate 中,我有:
MyWebView webView = new MyWebView(this, null);
webView = (MyWebView) findViewById(R.id.pdf);
Deal 类中的自定义 webview 类:
public class MyWebView extends WebView
Paint p = new Paint();
public MyWebView(Context context, AttributeSet attrs)
super(context, attrs);
@Override protected void onDraw(Canvas canvas)
super.onDraw(canvas);
p.setColor (Color.RED);
canvas.drawLine (20, 10, 300, 400, p);
XML:
<im.magic.dealpdf.Deal.MyWebView
android:id="@+id/pdf"
android:layout_weight="0.4"
android:layout_margin="5dp"
android:layout_
android:layout_/>
错误表明它没有找到类 im.magic.dealpdf.Deal.MyWebView。为什么会出现错误?将 xml 更改为 im.magic.dealpdf.Deal 会导致 cannot be cast to android.view.View
更新:我认为我需要在我的 Deal 类中扩展 View。但它已经扩展了 Activity
【问题讨论】:
尝试清理并再次构建您的项目,这可能会起作用 【参考方案1】:你不应该以这种方式使用内部类,将 MyWebView 声明为
public static class MyWebView extends WebView
...
否则无法在 Deal 实例之外创建 MyWebView 实例。 不能在布局文件中以这种方式引用内部类,因为here 你必须写这样的东西:
<view class="im.magic.dealpdf.Deal@MyWebView"
android:id="@+id/pdf"
android:layout_weight="0.4"
android:layout_margin="5dp"
android:layout_
android:layout_/>
【讨论】:
以上是关于自定义 Webview 上的 ClassCastException的主要内容,如果未能解决你的问题,请参考以下文章
无法弄清楚如何在同一 ScrollView 中的 WebView 上方添加自定义视图
版本 53 但不是版本 54 上的 Android WebView SSL 错误