【发布时间】:2014-05-01 06:47:18
【问题描述】:
奇怪的 ClassCastException:无法将 ImageView 转换为 ListView。 在 xml 中,视图被声明为 ListView。当我按如下方式检索对象时:
private void initShareContextMenu() {
ListView shareListITem = (ListView) findViewById(R.id.share_list);
shareList = new ContextMenuList(shareListITem,
(RelativeLayout) findViewById(R.id.content_wrapper), this);
List<View> views = new ArrayList<View>();
views.add(findViewById(R.id.share_btn));
shareList.setViews(views);
}
我得到了 ClassCastException。尝试构建和清理项目,删除 gen/bin 文件夹,重命名控件但没有任何帮助。 布局如下:
<RelativeLayout
android:id="@+id/content_wrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<FrameLayout
android:id="@+id/youtube_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black" />
<ListView
android:id="@+id/share_list"
android:layout_width="@dimen/share_context_menu_width"
android:layout_height="wrap_content"
android:divider="@color/share_list_divider"
android:dividerHeight="1px"
android:visibility="gone" />
</RelativeLayout>
05-01 09:40:45.215: E/MessageQueue-JNI(18500): Exception in MessageQueue callback: handleReceiveCallback
05-01 09:40:46.096: E/MessageQueue-JNI(18500): java.lang.ClassCastException: android.widget.ImageView cannot be cast to android.widget.ListView
05-01 09:40:46.096: E/MessageQueue-JNI(18500): at com.packagename.ui.activities.VideoPlayerActivity.initShareContextMenu(VideoPlayerActivity.java:1394)
05-01 09:40:46.096: E/MessageQueue-JNI(18500): at com.packagename.ui.activities.VideoPlayerActivity.showVideoEndScreen(VideoPlayerActivity.java:1375)
05-01 09:40:46.096: E/MessageQueue-JNI(18500): at com.packagename.ui.activities.VideoPlayerActivity.onBackPressed(VideoPlayerActivity.java:1587)
05-01 09:40:46.096: E/MessageQueue-JNI(18500): at android.app.Activity.onKeyUp(Activity.java:2193)
05-01 09:40:46.096: E/MessageQueue-JNI(18500): at android.view.KeyEvent.dispatch(KeyEvent.java:2664)
05-01 09:40:46.096: E/MessageQueue-JNI(18500): at android.app.Activity.dispatchKeyEvent(Activity.java:2423)
05-01 09:40:46.096: E/MessageQueue-JNI(18500): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1962)
【问题讨论】:
-
请从 logcat 发布完整的堆栈跟踪。
-
@Karakuri 添加了堆栈跟踪
-
你能告诉我们
VideoPlayerActivity.initShareContextMenu吗? -
@Karakuri 不需要,它从检索 ListView 开始。我在上面发布的那一行
-
很明显出了点问题,仅仅显示那行代码并不足以解决这个问题。
标签: android listview android-listview