TEL:400-8793-956
当前位置:程序、服务器

滚动后Listview项设置为默认值

提问者: 近期获赞: 浏览人数: 发布时间:2021-01-03 15:56:05

 问:我有一个列表视图,该列表视图为每个项目视图使用基本适配器类,当我在列表视图的一个项目中进行更改并滚动列表视图时,更改后的项目设置为默认值,即使滚动后我也需要保留我的值。

 
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = l_Inflater.inflate(R.layout.dish, null);
holder = new ViewHolder();
//holder.check_out=(Button) convertView.findViewById(R.id.checkout);
holder.txt_itemName = (TextView) convertView.findViewById(R.id.name);
holder.txt_itemPrice = (TextView) convertView.findViewById(R.id.price);
holder.itemImage = (ImageView) convertView.findViewById(R.id.photo);
holder.quickAdd = (ImageView) convertView.findViewById(R.id.quickAdd);
holder.quickRemove=(ImageView) convertView.findViewById(R.id.quickRemove);
holder.txt_item=(TextView) convertView.findViewById(R.id.item);
holder.quantity=(TextView) convertView.findViewById(R.id.quantity1);
holder.dishLogo=(TextView) convertView.findViewById(R.id.dishLogo);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
// holder.txt_item.setTag(position); 
final Integer dish_id = itemDetailsArrayList.get(position).getDishID();
final DishDetails obj = itemDetailsArrayList.get(position);
String quant=""+itemDetailsArrayList.get(position).getQuantity1();
holder.quantity.setText("   "+quant+" remaining");
holder.txt_itemName.setText(itemDetailsArrayList.get(position).getDishName());
holder.txt_itemPrice.setText(" \u20B9"+" "+itemDetailsArrayList.get(position).getDishPrice());
holder.itemImage.setScaleType(ScaleType.FIT_XY);
str=itemDetailsArrayList.get(position).getDishName();
char str1=str.charAt(0);
holder.dishLogo.setText(""+str1);
notifyDataSetChanged();
holder.quickAdd.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
 ViewGroup parent = (ViewGroup) v.getParent();
            TextView tv = (TextView) parent.findViewById(R.id.item);
            int count = Integer.parseInt((String) holder.txt_item.getText());
            count++;
           
            holder.txt_item.setText(String.valueOf(count));
            i++;
            cartCount();
            notifyDataSetChanged();
}
});
holder.quickRemove.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
 ViewGroup parent = (ViewGroup) v.getParent();
            TextView tv = (TextView) parent.findViewById(R.id.item);
            int count = Integer.parseInt((String) holder.txt_item.getText());
            if (count > 0) {
                count--;
                holder.txt_item.setText(String.valueOf(count));
               
                i--;
                cartCount();
               
            } 
            notifyDataSetChanged();
}
});
if(holder.txt_item.getText().toString()==""){
holder.txt_item.setText("0");
}
Float quantity = Float.parseFloat(holder.txt_item.getText().toString());
obj.setQuantity(quantity);
if(quantity==0.0){
// notifyDataSetChanged();
OrderStore.deleteOrderItem(dish_id);
}
else{
//String amount=itemDetailsArrayList.get(position).getDishPrice();
//int price=(int) (Integer.parseInt(amount)*quantity);
//amountCount(price);
//notifyDataSetChanged();
OrderStore.saveOrderItem(dish_id, obj);
}
notifyDataSetChanged();
return convertView;
}
 
 
 
答:进行任何单击操作后,需要将值分配给itemDetailsArrayList,然后调用notifyDataSetChanged
上一篇: 创建和删除并重新创建表
下一篇: 将对象转换为xml