首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClassCastException in getGroupView()

ClassCastException in getGroupView()
EN

Stack Overflow用户
提问于 2014-10-22 17:49:21
回答 1查看 188关注 0票数 0

我使用的是视差卷轴,当项目是文本时,它运行得很好。然后,我希望列表的第0项是一个ImageView,所以我在getGroupView()中添加了一个条件if(groupPosition ==0 ),它按预期工作,然后我想在imageview下面放置一个旋转器,所以我添加了第二个条件if(groupPosition ==1 ),它在滚动期间给了我这个异常。Rest我所有的代码都是一样的

代码语言:javascript
复制
10-22 22:52:23.459: E/InputEventReceiver(31336): Exception dispatching input event.
10-22 22:52:23.469: E/MessageQueue-JNI(31336): Exception in MessageQueue callback: handleReceiveCallback
10-22 22:52:23.499: E/MessageQueue-JNI(31336): java.lang.ClassCastException: android.widget.Spinner cannot be cast to android.widget.TextView
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at com.vivekwarde.chalisaaartistutisangraha.CustomExpandableListAdapter.getGroupView(CustomExpandableListAdapter.java:150)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.widget.ExpandableListConnector.getView(ExpandableListConnector.java:446)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.widget.AbsListView.obtainView(AbsListView.java:2260)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.widget.ListView.makeAndAddView(ListView.java:1769)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.widget.ListView.fillDown(ListView.java:672)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.widget.ListView.fillGap(ListView.java:636)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5045)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3202)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.widget.AbsListView.onTouchEvent(AbsListView.java:3476)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.View.dispatchTouchEvent(View.java:7127)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2170)    
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1905)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1934)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1388)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.app.Activity.dispatchTouchEvent(Activity.java:2396)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1882)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.View.dispatchPointerEvent(View.java:7307)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3174)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3119)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4157)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4136)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4228)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.os.MessageQueue.nativePollOnce(Native Method)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.os.MessageQueue.next(MessageQueue.java:125)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.os.Looper.loop(Looper.java:124)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at android.app.ActivityThread.main(ActivityThread.java:4794)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at java.lang.reflect.Method.invokeNative(Native Method)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at java.lang.reflect.Method.invoke(Method.java:511)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
10-22 22:52:23.499: E/MessageQueue-JNI(31336):  at dalvik.system.NativeStart.main(Native Method)
10-22 22:52:23.499: W/dalvikvm(31336): threadid=1: thread exiting with uncaught exception (group=0x40bdf450)
10-22 22:52:23.509: E/AndroidRuntime(31336): FATAL EXCEPTION: main
10-22 22:52:23.509: E/AndroidRuntime(31336): java.lang.ClassCastException: android.widget.Spinner cannot be cast to android.widget.TextView
10-22 22:52:23.509: E/AndroidRuntime(31336):    at com.vivekwarde.chalisaaartistutisangraha.CustomExpandableListAdapter.getGroupView(CustomExpandableListAdapter.java:150)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.widget.ExpandableListConnector.getView(ExpandableListConnector.java:446)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.widget.AbsListView.obtainView(AbsListView.java:2260)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.widget.ListView.makeAndAddView(ListView.java:1769)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.widget.ListView.fillDown(ListView.java:672)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.widget.ListView.fillGap(ListView.java:636)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5045)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3202)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.widget.AbsListView.onTouchEvent(AbsListView.java:3476)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.View.dispatchTouchEvent(View.java:7127)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2170)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1905)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1934)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1388)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.app.Activity.dispatchTouchEvent(Activity.java:2396)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1882)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.View.dispatchPointerEvent(View.java:7307)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3174)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3119)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4157)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4136)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4228)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.os.MessageQueue.nativePollOnce(Native Method)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.os.MessageQueue.next(MessageQueue.java:125)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.os.Looper.loop(Looper.java:124)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at android.app.ActivityThread.main(ActivityThread.java:4794)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at java.lang.reflect.Method.invokeNative(Native Method)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at java.lang.reflect.Method.invoke(Method.java:511)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
10-22 22:52:23.509: E/AndroidRuntime(31336):    at dalvik.system.NativeStart.main(Native Method)

这是代码,我不知道是什么引起了问题

代码语言:javascript
复制
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {


    if(groupPosition ==0 )
    {       ImageView imageView = (ImageView) convertView;
        if (imageView == null)
            imageView = (ImageView) inflater.inflate(R.layout.image_big, null);
        //imageView.setImageDrawable();
        return imageView;
    }
    if(groupPosition==1)
    {
        Spinner spinner = (Spinner) convertView;
            if (spinner == null)
                spinner = (Spinner) inflater.inflate(R.layout.spinner, null);
            //imageView.setImageDrawable();
            List<String> list = new ArrayList<String>();
            list.add("Android");
            list.add("Java");
            list.add("Spinner Data");
            list.add("Spinner Adapter");
            list.add("Spinner Example");

            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>
                         (myContext, android.R.layout.simple_spinner_item,list);

            dataAdapter.setDropDownViewResource
                         (android.R.layout.simple_spinner_dropdown_item);

            spinner.setAdapter(dataAdapter);

            return spinner;

    }
    else
    {
    TextView textView = (TextView) convertView;// line 150 : exception after scrolling when spinner view is gone

    if (textView == null)
        textView = (TextView) inflater.inflate(R.layout.item, null);
    textView.setText(getGroup(groupPosition));
    return textView;
    }
}

Spinner.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<Spinner xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:prompt="@string/spinner_prompt" >


</Spinner>

我从最后一个小时开始尝试,但不知道如何解决它。

救命!!

提前谢谢..。

EN

回答 1

Stack Overflow用户

发布于 2014-10-22 17:55:49

代码语言:javascript
复制
java.lang.ClassCastException: android.widget.Spinner cannot be cast to android.widget.TextView

问题在于,您正在将convertView转换为TextView!,您的Spinner.xml中没有任何TextView

代码语言:javascript
复制
 TextView textView = (TextView) convertView;// line 150 : exception after scrolling when spinner view is gone
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26513833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档