0

嗨,我创建 customlistview 第一次在 0 中插入值时添加了一个按钮。当我必须单击添加按钮时,数据库中的值更改为 1。获取列值结果。

注意*获取值结果 1 表示更改按钮或颜色。我在 baseadapter 中使用*

这里我还提到了示例代码:

            holder.btn_add.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    HashMap<String, String> hashMap = new HashMap<String, String>();
                    hashMap.put("product", arrListproduct_name
                            .get(position).toString().trim());
                    hashMap.put(
                            "price",
                            getDoublePrecision(arrListproductprice
                                    .get(position).toString().trim()));
                    hashMap.put("productID", arrlistproduct_id
                            .get(position).toString().trim());
                    hashMap.put("quantity", datavalue);
                    hashMap.put("resturantID",
                            category.dinein_restaurant_id);
                    hashMap.put("value", Str_value);
                    arrListproductdatabase.add(hashMap);
                    if (dataBase.ProductExist(
                            DatabaseHelper.TABLErestaurant,
                            arrlistproduct_id.get(position).toString()
                                    .trim())) {
                        Toast.makeText(VegNonVegClass.this,
                                "Update successfully", Toast.LENGTH_LONG)
                                .show();
                        for (int i = 0; i < GetAllitemDetailsItem.size(); i++) {
                            dataBase.updateData1(
                                    GetAllitemDetailsItem.get(i).get("id"),
                                    DatabaseHelper.TABLErestaurant, "1");
                        }

                    } else {
                        dataBase.insertData(DatabaseHelper.TABLErestaurant,
                                arrListproductdatabase);
                        arrListproductdatabase.clear();
                        Toast.makeText(VegNonVegClass.this,
                                "Add successfully", Toast.LENGTH_LONG)
                                .show();
                        // arrListproductdatabase.remove(position);
                        // notifyDataSetChanged();
                        ArrayList<String> selectedno = dataBase
                                .getselectedTrue();
                        for (String s : selectedno) {
                            if (s.equalsIgnoreCase("1")) {
                                holder.btn_add
                                        .setBackgroundResource(R.drawable.checkout);
                            }
                        }
                    }

                    if (listener != null) {
                        listener.totalAmount(String.valueOf(Str_subtotal));
                    }

                }

            });

问题按钮已更改但列表视图刷新意味着自动更改上一个按钮请给我解决方案

4

1 回答 1

0

我不完全确定我理解你的问题,但我相信你是说按钮的值正在改变,但它在列表中的视图没有适当地改变,对吗?

如果是这样,那是因为列表视图的适配器是如何工作的。它旨在通过重新使用已经创建的膨胀视图来提高效率,而不是每次都重新创建它们。

首先,尝试在适配器上调用 notifyDataSetChanged()。

如果这不能更新您的问题,那可能是因为您实际上并未更改适配器中的数据;只是它所代表的价值。

确保您也适当地覆盖了适配器的 getView() 方法:

public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;

    if(row == null)
    {
        row = (((Activity)mContext).getLayoutInflater()).inflate(layoutResourceId, parent, false);            
    }

    try{
        // Set what the view should show here

    }
    catch(Exception e){
        e.printStackTrace();
    }

    return row;
}
于 2013-05-13T13:21:22.870 回答