奇怪的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)
答案 0 :(得分:1)
在此处查看类似问题的答案:
Eclipse会不时地弄乱你的资源。这导致 一些奇怪的行为,如字符串和图像被全部交换 你的应用程序,以及更常见的classCastException(s),它发生在 Eclipse会切换你的视图ID。该问题的一些解决方案:
清理您的项目。
修改xml布局文件并保存。
删除您的R文件。 (不要担心它会自动生成 再次)。
基本上任何使项目重建并重新生成的东西 R档。