首页 > 解决方案 > 如何在单击列表视图的不同子项时执行一些操作

问题描述

这是我的 ItemPriceActivity 图像:

在这里,我使用了托管的另一个 API 的 URL,因为我很容易使用这个 URL,因为我经常不需要更改地址,所以我使用了那个。所以不要介意那里出现的医院名称。

这是我的适配器类

在这里,我想做的就是当我单击列表视图的子项时,即在购物车图标上,我想要一个动画,该动画会为显示在浮动按钮上方的文本视图而抖动,并且在单击不同的购物车图标时,数字也应该增加,而且它未选中时应减少。请建议我如何执行此类操作,并提前感谢您。

@Override
public View getView(final int position, View convertView, ViewGroup parent) {

    if (inflater == null)
        inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    if (convertView == null)
        convertView = inflater.inflate(R.layout.item_layout, null);
        convertView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ItemPricePojo userInfo = datalist.get(position);
            mlistener.onItemClick(userInfo);
        }
    });
     final TextView totalcart = convertView.findViewById(R.id.totalcartitems);
    final Animation animShake = AnimationUtils.loadAnimation(activity, R.anim.shake);
    final CheckBox checkBox = convertView.findViewById(R.id.addtocart);
    checkBox.setTag(new Integer(position));
    checkBox.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            totalcart.startAnimation(animShake);

            if(checkBox.isChecked()){
                count++;
                totalcart.setText(Integer.toString(count));
            }
            else {
                count--;
                totalcart.setText(Integer.toString(count));

            }

        }
    });

    TextView price = convertView.findViewById(R.id.price);
    TextView name = convertView.findViewById(R.id.text1);

    ItemPricePojo m = datalist.get(position);

    price.setText(String.valueOf(m.getPrice()));
    name.setText(String.valueOf(m.getName()));

    return convertView;
   }
}

标签: androidandroid-animationcounting

解决方案


您为您的复选框设置了一个 onClick 侦听器。您应该改用 setOnCheckedChangeListener ,它会告诉您复选框是否被选中。

checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

        }
    });

推荐阅读