滚动可扩展列表视图时要更改的选择

时间:2015-11-12 08:44:17

标签: android android-adapter android-adapterview

我使用可扩展列表视图来设置父级中的数据包含图像按钮和名称,在此列表中选择列表项来更改图像按钮的颜色。一切都准备好了。滚动列表项时选择要更改的图像按钮颜色。我认为在滚动可扩展列表视图时会刷新。如何解决这个问题?

代码

@Override
    public View getGroupView(final int i, boolean b, View view, ViewGroup viewGroup) {
       final GroupViewHolder groupViewHolder;
        if(view==null) {
            groupViewHolder=new GroupViewHolder();
            view=((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.product_listview_group_item,null);
            groupViewHolder.name=(TextView)view.findViewById(R.id.category_listview_item_name);
            groupViewHolder.price = (TextView)view.findViewById(R.id.category_listview_item_price);
            groupViewHolder.nameIcon=(ImageView)view.findViewById(R.id.category_listview_item_icon);
            groupViewHolder.onClick=(ImageButton)view.findViewById(R.id.category_listview_item_onclick);
            view.setTag(groupViewHolder);
        } else {
            groupViewHolder=(GroupViewHolder)view.getTag();
        }
        groupViewHolder.nameIcon.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (groupViewHolder.nameIcon.isSelected()) {                   groupViewHolder.name.setTextColor(Color.parseColor("#ffc400"));                    groupViewHolder.price.setTextColor(Color.parseColor("#ffc400"));                    groupViewHolder.nameIcon.setBackgroundResource(R.mipmap.yellow_circle_list_item);
                    groupViewHolder.nameIcon.setSelected(true);
                    dataHandler.addTempproducts(datas.get(i));
                } else {
               groupViewHolder.nameIcon.setBackgroundResource(R.mipmap.black_circle_list_item);
                    groupViewHolder.nameIcon.setSelected(false);                    groupViewHolder.name.setTextColor(Color.parseColor("#ffffff"));                    groupViewHolder.price.setTextColor(Color.parseColor("#ffffff"));
                    groupViewHolder.nameIcon.setTag(null);
                    dataHandler.removeTempProducts(datas.get(i));
                }
            }
        });
        if(datas.get(i).getPrice().isEmpty()) {
            groupViewHolder.price.setText(datas.get(i).getPrice());
        } else  {
            groupViewHolder.price.setText(datas.get(i).getPrice() + "/-");
        }
        groupViewHolder.name.setText(datas.get(i).getName());
        return view;
    }

0 个答案:

没有答案