Android强制类型转换发生错误

图片说明
view属于android.support.v7.widget.AppCompatImageView不属于UnfoldableDetailsActivity,各位大神,我不知道应该怎么改了

4个回答

先将android.support.v7.widget.AppCompatImageView转换为android.view.View。
如果是后者,代码是可以通过的。

baidu_37420328
baidu_37420328 大神,我不会写
3 年多之前 回复
baidu_37420328
baidu_37420328 java.lang.ClassCastException: android.support.v7.widget.TintContextWrapper cannot be cast to Activity
3 年多之前 回复

这是 AppCompat 把 Activity 的 ContextWrapper 又包了一层. 一层一层的想办法找到 Activity 就可以了:

    /**
     * try get host activity from view.
     * views hosted on floating window like dialog and toast will sure return null.
     * @return host activity; or null if not available
     */
    public static Activity getActivityFromView(View view) {
        Context context = view.getContext();
        while (context instanceof ContextWrapper) {
            if (context instanceof Activity) {
                return (Activity) context;
            }
            context = ((ContextWrapper) context).getBaseContext();
        }
        return null;
    }

用这个方法是比较保险的.

UnfoldableDetailsActivity activity = (UnfoldableDetailsActivity)view.getContext();
activity.openDetails(view, item);
看看这么写行不行

baidu_37420328
baidu_37420328 不行,试过了,谢谢大神,已经放弃这个了,鸡年大吉
3 年多之前 回复

为此写了一篇博客. 可以参考:
http://blog.csdn.net/liuxu0703/article/details/70145168

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问