如何在listview项中放置按钮,这可以更改该特定列表项中的数据,该列表项对应于SQLIte数据库的一行?

时间:2018-03-29 16:21:00

标签: android sqlite listview

我有一个活动,显示一个列表视图,其中包含每个列表视图项目中产品的名称,数量和价格。每个列表项都有一个销售按钮,按下该按钮时应减少按下销售按钮的特定产品的数量。

我无法找到按下哪个列表项目(即产品的)销售按钮....我无法获得按下销售按钮的列表项目的ID。

我已经在类似于CursorAdapter类的类中的bindView方法中的Sale按钮上设置了setOnClickListener。

@Override
public void bindView(View view, Context context, Cursor cursor) {
    // TODO: Fill out this method
    TextView itemName = (TextView) view.findViewById(R.id.name);
    TextView itemSummary = (TextView) view.findViewById(R.id.summary);
    TextView itemPrice = (TextView) view.findViewById(R.id.price);
    Button saleButton = (Button) view.findViewById(R.id.sale_button);
    final Context context1 = context;
    final View view1 = view;
    final Cursor cursor1 = cursor;
    saleButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            handleClick(context1, cursor1,view1);
        }
    });
 // Extract properties from cursor
    String name = cursor.getString(cursor.getColumnIndexOrThrow(ItemEntry.COLUMN_ITEM_NAME));
    String summary = cursor.getString(cursor.getColumnIndexOrThrow(ItemEntry.COLUMN_ITEM_QUANTITY));
    String price = cursor.getString(cursor.getColumnIndexOrThrow(ItemEntry.COLUMN_ITEM_SELLING_PRICE));
    // If the pet breed is empty string or null, then use some default text
    // that says "Unknown breed", so the TextView isn't blank.
    if (TextUtils.isEmpty(summary)) {
        summary = context.getString(R.string.unknown_quantity);
    }
    // Populate fields with extracted properties
    itemName.setText(name);
    itemSummary.setText("In Stock: " + summary);
    itemPrice.setText("$ " + price);
}

这是同一类中的handleClick方法。

 public void handleClick(Context context, Cursor cursor) {
    // access your DB here, {item} is available if you need the data

    ContentValues values = new ContentValues();
    String quantity = cursor.getString(cursor.getColumnIndexOrThrow(ItemEntry.COLUMN_ITEM_QUANTITY));
    int editedQuantity = Integer.parseInt(quantity);
    if (editedQuantity == 0) {
        return;
    }
    else {
        values.put(ItemEntry.COLUMN_ITEM_QUANTITY, editedQuantity - 1);
        context.getContentResolver().update(Uri.parse(ItemEntry.CONTENT_URI + "/" + String.valueOf(cursor.getPosition()+1)), values, null, null);
    }
}

我面临的问题是,当按下任何列表项目上的任何“销售”按钮时,最后一个列表项目上的数量将减少,而不是单击“销售”按钮的相应列表项中的数量。

0 个答案:

没有答案