Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android listview ArrayAdapter字符串无法强制转换为HolderView_Java_Android_Listview_Android Listview_Android Arrayadapter - Fatal编程技术网

Java android listview ArrayAdapter字符串无法强制转换为HolderView

Java android listview ArrayAdapter字符串无法强制转换为HolderView,java,android,listview,android-listview,android-arrayadapter,Java,Android,Listview,Android Listview,Android Arrayadapter,在我的应用程序中,带有自定义arrayadapter的listview在滚动listview时崩溃,错误为: 06-17 09:01:21.319: E/AndroidRuntime(32453): java.lang.ClassCastException: java.lang.String cannot be cast to SlideMenuListArrayAdapter$ViewHolder 请注意,slideMenuAdapter是我的自定义适配器,我使用对象的arraylis

在我的应用程序中,带有自定义arrayadapter的listview在滚动listview时崩溃,错误为:

   06-17 09:01:21.319: E/AndroidRuntime(32453): java.lang.ClassCastException: java.lang.String cannot be cast to SlideMenuListArrayAdapter$ViewHolder
请注意,slideMenuAdapter是我的自定义适配器,我使用对象的arraylist绑定它。 这是getView()的代码

我如何解决这个问题

这是整个logcat

06-17 09:01:21.319: E/AndroidRuntime(32453): java.lang.ClassCastException:        java.lang.String cannot be cast to   com.ids.aldana.adapters.SlideMenuListArrayAdapter$ViewHolder
06-17 09:01:21.319: E/AndroidRuntime(32453):    at com.ids.aldana.adapters.SlideMenuListArrayAdapter.getView(SlideMenuListArrayAdapter.java:70)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.widget.AbsListView.obtainView(AbsListView.java:2605)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.widget.ListView.makeAndAddView(ListView.java:1856)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.widget.ListView.fillDown(ListView.java:684)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.widget.ListView.fillGap(ListView.java:648)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.widget.AbsListView.trackMotionScroll(AbsListView.java:6589)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3703)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.widget.AbsListView.onTouchEvent(AbsListView.java:4553)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.View.dispatchTouchEvent(View.java:7822)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2435)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2441)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2174)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2441)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2174)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2441)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2174)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2441)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2174)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2441)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2174)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2326)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1612)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.app.Activity.dispatchTouchEvent(Activity.java:2494)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2274)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.View.dispatchPointerEvent(View.java:8030)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4574)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4462)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4056)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4113)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4082)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4167)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4090)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4224)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4056)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4113)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4082)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4090)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4056)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6224)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6154)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6125)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6304)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:188)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:177)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:6277)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:6323)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:791)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.Choreographer.doCallbacks(Choreographer.java:591)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.Choreographer.doFrame(Choreographer.java:559)
06-17 09:01:21.319: E/AndroidRuntime(32453):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer
inflate()
返回XML视图层次结构的根布局。假设根视图具有id
rowbackground
,则此行

holder.rw.setTag(menuLinkList.get(position).getId());
字符串覆盖viewholder标记,循环使用视图将不起作用


您可以将id等附加数据存储在视图持有者字段中,而无需将其放在视图标记中。

为什么您甚至需要视图持有者。您可以直接获取对TextView、ImageView或任何其他视图的引用。请查看此代码以供参考。无需创建视图rowView。您可以直接使用convertView以便我在holder
静态类ViewHolder{public TextView title;public ImageView image;public RelativeLayout rw;public String id;}
中创建一个新字段id,并像这样初始化它
holder.id=menuLinkList.get(position).getId()现在我如何从我的活动中访问它?获取标签,转换到持有者,读取字段。也许有更好的办法来解决你的问题;这主要是为了消除类强制转换异常。如果这是正确答案,请将答案标记为正确答案。
holder.rw.setTag(menuLinkList.get(position).getId());