我有一个活动,显示一个列表视图,其中包含每个列表视图项目中产品的名称,数量和价格。每个列表项都有一个销售按钮,按下该按钮时应减少按下销售按钮的特定产品的数量。
我无法找到按下哪个列表项目(即产品的)销售按钮....我无法获得按下销售按钮的列表项目的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);
}
}
我面临的问题是,当按下任何列表项目上的任何“销售”按钮时,最后一个列表项目上的数量将减少,而不是单击“销售”按钮的相应列表项中的数量。