奇怪的ClassCastException:ImageView无法强制转换为ListView

时间:2014-05-01 06:47:19

标签: android listview android-listview

奇怪的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)

1 个答案:

答案 0 :(得分:1)

在此处查看类似问题的答案:

Android: java.lang.ClassCastException: android.widget.imageView cannot be cast to android.widget.textView

  Eclipse会不时地弄乱你的资源。这导致   一些奇怪的行为,如字符串和图像被全部交换   你的应用程序,以及更常见的classCastException(s),它发生在   Eclipse会切换你的视图ID。

     

该问题的一些解决方案:

     

清理您的项目。

     

修改xml布局文件并保存。

     

删除您的R文件。 (不要担心它会自动生成   再次)。

     

基本上任何使项目重建并重新生成的东西   R档。