使用自定义适配器和视图持有器的Android列表视图

iff

我正在尝试使用视图支架制作自定义适配器。

Log.i(CardHolderConstants.LOGIN_INFO, "cardsize>0");
        myListAdapater=new MyListAdapater(this,cardList);       
        listview.setAdapter(myListAdapater);

在这里,我称该类为扩展baseadpater的mylist。CardList包含从数据库中检索到的卡对象的列表。

    static class ViewHolder{
        public TextView cardId,cardNumber,cardName;

    }

    class MyListAdapater extends BaseAdapter{
        List<Card> cardListForDisplay;
         LayoutInflater inflater ; Context context;
        public MyListAdapater(Context context,List<Card> cardListForDisplay) {
            super();
            Log.i(CardHolderConstants.LOGIN_INFO, "inside mylist");
            this.cardListForDisplay = cardListForDisplay;
            this.context=context;

        }



        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return cardListForDisplay.size();
        }

        @Override
        public Object getItem(int arg0) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int arg0) {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public View getView(int arg0, View view, ViewGroup parent) {            
            View rowView = view; 
            ViewHolder holder;
            if(rowView==null){  
                holder=new ViewHolder();
                inflater = ((Activity) context).getLayoutInflater();
                  rowView = inflater.inflate(R.layout.card_list, parent, false);                  
                  holder.cardId=(TextView)rowView.findViewById(R.id.displayCardID);
                  holder.cardName=(TextView)rowView.findViewById(R.id.displayCardName);
                  holder.cardNumber=(TextView)rowView.findViewById(R.id.displayCardNumber);
                  rowView.setTag(holder);
            }
            else{
                holder=(ViewHolder) rowView.getTag();
            }
            Log.i(CardHolderConstants.CARD_HOLDER, "inside getView class");
            for(Card card:cardListForDisplay){
                if(card!=null){
                long cardID= card.getCardId();
                String cardName=card.getCardName();
                long cardNumber=card.getCardNumber();
                if(Utils.isNumberNullOrEmpty(cardID)==false && Utils.isNumberNullOrEmpty(cardNumber)==false
                        && Utils.isStringNullOrEmpty(cardName)==false)
                 holder.cardId.setText(Long.toString(cardID));
                 holder.cardNumber.setText(Long.toString(cardNumber));
                 holder.cardName.setText(cardName);
                }
            }


            return rowView;
        }

    }
}

当类初始化时,不会调用get view方法。
构造函数中的日志被打印出来。为什么我的getview方法没有被调用。该列表正在显示。但正在显示相同的项目。在listview中进行迭代的正确方法是什么

拉贡南丹

你有

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return 0;
}

应该

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return cardListForDisplay.size();
}

也改为

public Object getItem(int arg0) {
    return arg0; // can be cardListForDisplay.get(arg0)
}

@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0; // can be cardListForDisplay.indexOf(getItem(arg0))
}

编辑:

Card card = (Card) cardListForDisplay.get(position);      
long cardID= card.getCardId();
String cardName=card.getCardName();
long cardNumber=card.getCardNumber();
holder.cardId.setText(Long.toString(cardID));
holder.cardNumber.setText(Long.toString(cardNumber));
holder.cardName.setText(cardName);

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android过滤器列表视图自定义适配器

来自分类Dev

使用适用于Android应用的自定义适配器将项目动态添加到列表视图

来自分类Dev

使用自定义适配器在列表视图中选择/突出显示多个项目-Android

来自分类Dev

空指针异常在列表视图适配器中使用视图持有者时

来自分类Dev

使用外部XML文件进行自定义列表视图适配器?

来自分类Dev

Android:具有图像和文本错误的自定义网格视图适配器

来自分类Dev

自定义视图的适配器中的NullPointerException

来自分类Dev

使用带有参数的自定义绑定适配器侦听器方法的Android自定义视图

来自分类Dev

自定义适配器视图(带有图片)

来自分类Dev

具有自定义光标适配器和多个视图的android listview-仅对bindView特定视图

来自分类Dev

我无法使用自定义适配器数据清除列表视图?

来自分类Dev

在对话框片段和自定义列表视图适配器之间实现接口时出错

来自分类Dev

将列表视图的数据从Asynctask传递到自定义列表适配器类

来自分类Dev

android自定义列表视图适配器中的ArrayList索引超出范围异常

来自分类Dev

使用自定义列表视图适配器和不同布局的结果不正确

来自分类Dev

自定义列表视图和适配器覆盖getView,更改文本颜色

来自分类Dev

自定义文本视图适配器不适用于列表视图

来自分类Dev

如何使用Hashmap为自定义列表视图创建自定义适配器

来自分类Dev

列表视图中的页脚按钮,如何从自定义列表适配器获取价值

来自分类Dev

Android:具有图像和文本错误的自定义网格视图适配器

来自分类Dev

在片段中每个列表视图有多个文本视图的情况下,如何设置自定义适配器

来自分类Dev

自定义适配器不显示列表视图

来自分类Dev

对于使用一个自定义适配器的多个列表视图

来自分类Dev

如何使用 REST API、自定义列表视图、适配器、行布局在 xamarin android c# 中填充列表视图

来自分类Dev

Android - 将搜索栏添加到自定义列表视图和简单适配器

来自分类Dev

使用自定义适配器视图时,如何使列表视图可点击?

来自分类Dev

在自定义列表视图适配器中使用多个视图

来自分类Dev

滚动列表视图和自定义适配器的问题

来自分类Dev

Android Java:用于滚动和过滤问题的列表视图的自定义适配器

Related 相关文章

  1. 1

    Android过滤器列表视图自定义适配器

  2. 2

    使用适用于Android应用的自定义适配器将项目动态添加到列表视图

  3. 3

    使用自定义适配器在列表视图中选择/突出显示多个项目-Android

  4. 4

    空指针异常在列表视图适配器中使用视图持有者时

  5. 5

    使用外部XML文件进行自定义列表视图适配器?

  6. 6

    Android:具有图像和文本错误的自定义网格视图适配器

  7. 7

    自定义视图的适配器中的NullPointerException

  8. 8

    使用带有参数的自定义绑定适配器侦听器方法的Android自定义视图

  9. 9

    自定义适配器视图(带有图片)

  10. 10

    具有自定义光标适配器和多个视图的android listview-仅对bindView特定视图

  11. 11

    我无法使用自定义适配器数据清除列表视图?

  12. 12

    在对话框片段和自定义列表视图适配器之间实现接口时出错

  13. 13

    将列表视图的数据从Asynctask传递到自定义列表适配器类

  14. 14

    android自定义列表视图适配器中的ArrayList索引超出范围异常

  15. 15

    使用自定义列表视图适配器和不同布局的结果不正确

  16. 16

    自定义列表视图和适配器覆盖getView,更改文本颜色

  17. 17

    自定义文本视图适配器不适用于列表视图

  18. 18

    如何使用Hashmap为自定义列表视图创建自定义适配器

  19. 19

    列表视图中的页脚按钮,如何从自定义列表适配器获取价值

  20. 20

    Android:具有图像和文本错误的自定义网格视图适配器

  21. 21

    在片段中每个列表视图有多个文本视图的情况下,如何设置自定义适配器

  22. 22

    自定义适配器不显示列表视图

  23. 23

    对于使用一个自定义适配器的多个列表视图

  24. 24

    如何使用 REST API、自定义列表视图、适配器、行布局在 xamarin android c# 中填充列表视图

  25. 25

    Android - 将搜索栏添加到自定义列表视图和简单适配器

  26. 26

    使用自定义适配器视图时,如何使列表视图可点击?

  27. 27

    在自定义列表视图适配器中使用多个视图

  28. 28

    滚动列表视图和自定义适配器的问题

  29. 29

    Android Java:用于滚动和过滤问题的列表视图的自定义适配器

热门标签

归档