这是我的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;
}
}
答案 0 :(得分:0)
您为checkBox设置了onClick侦听器。 您应该使用setOnCheckedChangeListener来告诉您是否选中了复选框。
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
}
});
答案 1 :(得分:0)
我建议您切换到recyclerview,因为点击处理更有效,并查看this文章
答案 2 :(得分:0)
经过一番精彩的研究,我找到了答案。我所要做的就是在我的活动类中将textview更改为static,这是我的适配器类无法识别的。我改变了:
public static textview totalcart = findViewById();
在我的活动课上。由于适配器类不允许使用findViewById();所以我们必须在活动类中将它用作静态。现在,我必须从我希望textview通过适配器类识别的位置定义我的活动类:
ItemPriceActivity itemsPriceActivity = new ItemPriceActivity();
然后在使用动画时我这样做了:
final动画animShake = AnimationUtils.loadAnimation(mcontext,R.anim.shake); itemsPriceActivity.totalcart.startAnimation(animShake);
现在,它按照我的意愿运作。