Android TypeHolder中的ClassCastException

索拉玛莎(Saurabh Mhase)

我已经做了ListView,我想夸大取决于值不同的XML文件iMsguMsg(或其中一人将永远是空白的,所以对方应该被夸大)。

我有2个xml文件。两者都有TextView不同的样式。该代码强制转换为ClassCastException我读了另一个问题的答案以覆盖该getViewTypeCount()方法。但是我不太明白。有人可以帮忙吗?

public class ChatAdapter extends ArrayAdapter<Chatmsg>{
    public ChatAdapter(Context context, ArrayList<Chatmsg> messages) {
        super(context,0,messages);
    }

    public static class iViewHolder{
        TextView imsg;
    }
    public static class uViewHolder{
        TextView umsg;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent){
        Chatmsg chatmsg = getItem(position);
        View v = null;

        if(chatmsg.getuMsg()== null) {
            iViewHolder iviewHolder;
            v = convertView;

            if (v == null) {
                LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.pc_custom_row_i, parent, false);

                iviewHolder = new iViewHolder();
                iviewHolder.imsg = (TextView) v.findViewById(R.id.iMessage);
                v.setTag(iviewHolder);
            } else {
                iviewHolder = (iViewHolder) v.getTag();
            }

            iviewHolder.imsg.setText(chatmsg.getiMsg());

        } else {
                uViewHolder uviewHolder;
                v = convertView;

                if(v== null){
                    LayoutInflater vi1 = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    v = vi1.inflate(R.layout.pc_custom_row_u,parent,false);
                    uviewHolder = new uViewHolder();
                    uviewHolder.umsg = (TextView) v.findViewById(R.id.uMessage);
                    v.setTag(uviewHolder);

                } else {
                    uviewHolder = (uViewHolder) v.getTag();
                }

                uviewHolder.umsg.setText(chatmsg.getuMsg());
        }

        return v;
    }
}

这是日志:

E/AndroidRuntime:   
FATAL EXCEPTION: main Process: in.techxator.zero.zero_chat, PID: 28876  
java.lang.ClassCastException:in.techxator.zero.zero_chat.ChatAdapter$iViewHolder cannot be cast to in.techxator.zero.zero_chat.ChatAdapter$uViewHolder at in.techxator.zero.zero_chat.ChatAdapter.getView(ChatAdapter.java:120)
雷兹轻声疾呼

我修改了以前的答案,因为它不是答案。我看到的问题是关于,ListView但是无论如何,由于RecyclerView这些天我大部分时间都在工作,所以我为提出了解决方案RecyclerView

您需要在这里重写该getViewTypeCount方法。如果不定义视图类型,Android系统将不知道存在不同的视图类型。

您也可以查看此答案答案本身不会覆盖getViewTypeCount您需要显式实现此方法,并且return 2有两个不同的方法ViewHolder

您也可以看看这个答案该答案实现了一个自定义适配器,getViewTypeCount以使您有一个想法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android RecyclerAdapter中的ClassCastException

来自分类Dev

从SharedPreferences中读取后,Android ClassCastException

来自分类Dev

Android数据库中的ClassCastException

来自分类Dev

Android应用程式中的ClassCastException

来自分类Dev

Android中TextView setColor方法上的ClassCastException

来自分类Dev

由于 Android Studio 中的 ClassCastException,应用程序崩溃

来自分类Dev

Android ListView ClassCastException

来自分类Dev

Java中的参数化方法:try-catch无法捕获ClassCastException(在Android上)

来自分类Dev

当两个变量都在android studio中浮动时的ClassCastException

来自分类Dev

Getting ClassCastException on implementing ListView in android?

来自分类Dev

Android Studio- ClassCastException错误?

来自分类Dev

在Android上实现ListView时得到ClassCastException?

来自分类Dev

Android-首选项-ClassCastException

来自分类Dev

ClassCastException:android.widget.LinearLayout $ LayoutParams

来自分类Dev

ClassCastException:android.graphics.Bitmap和ArrayList <>

来自分类Dev

Android:面临Errorjava.lang.ClassCastException

来自分类Dev

Android ClassCastException Object []转换为String []

来自分类Dev

Java,Android:意图后出现ClassCastException

来自分类Dev

Android:面临Errorjava.lang.ClassCastException

来自分类Dev

ClassCastException:android.graphics.Bitmap和ArrayList <>

来自分类Dev

在Android中使用Fragment时发生ClassCastException

来自分类Dev

Android中的HTML android

来自分类Dev

RecyclerView的onBindViewHolder中的ClassCastException

来自分类Dev

片段中的SimpleCursorAdapter ClassCastException

来自分类Dev

findViewById中的奇怪的ClassCastException

来自分类Dev

水壶步骤中的ClassCastException

来自分类Dev

Lambda流中的ClassCastException

来自分类Dev

ClassCastException异常JavaFX中

来自分类Dev

Karaf中PersistenceProviderImpl的ClassCastException

Related 相关文章

  1. 1

    Android RecyclerAdapter中的ClassCastException

  2. 2

    从SharedPreferences中读取后,Android ClassCastException

  3. 3

    Android数据库中的ClassCastException

  4. 4

    Android应用程式中的ClassCastException

  5. 5

    Android中TextView setColor方法上的ClassCastException

  6. 6

    由于 Android Studio 中的 ClassCastException,应用程序崩溃

  7. 7

    Android ListView ClassCastException

  8. 8

    Java中的参数化方法:try-catch无法捕获ClassCastException(在Android上)

  9. 9

    当两个变量都在android studio中浮动时的ClassCastException

  10. 10

    Getting ClassCastException on implementing ListView in android?

  11. 11

    Android Studio- ClassCastException错误?

  12. 12

    在Android上实现ListView时得到ClassCastException?

  13. 13

    Android-首选项-ClassCastException

  14. 14

    ClassCastException:android.widget.LinearLayout $ LayoutParams

  15. 15

    ClassCastException:android.graphics.Bitmap和ArrayList <>

  16. 16

    Android:面临Errorjava.lang.ClassCastException

  17. 17

    Android ClassCastException Object []转换为String []

  18. 18

    Java,Android:意图后出现ClassCastException

  19. 19

    Android:面临Errorjava.lang.ClassCastException

  20. 20

    ClassCastException:android.graphics.Bitmap和ArrayList <>

  21. 21

    在Android中使用Fragment时发生ClassCastException

  22. 22

    Android中的HTML android

  23. 23

    RecyclerView的onBindViewHolder中的ClassCastException

  24. 24

    片段中的SimpleCursorAdapter ClassCastException

  25. 25

    findViewById中的奇怪的ClassCastException

  26. 26

    水壶步骤中的ClassCastException

  27. 27

    Lambda流中的ClassCastException

  28. 28

    ClassCastException异常JavaFX中

  29. 29

    Karaf中PersistenceProviderImpl的ClassCastException

热门标签

归档