我有一個名爲的自定義陣列適配器CustomListCartItem。我想在購物車項目被移除時更新我的活動。到目前爲止,我可以刪除購物車清單中的物品,也可以刪除ArrayAdapter中的物品。但是,我想在我的活動中更新一個名爲txtSubtotal的TextView。從自定義ArrayAdapter更新活動
btnRemove.setOnClickListener
是否正確放置?- 如何更改
txtSubtotal
的值?
我的自定義陣列適配器:
public class CustomListCartItem extends ArrayAdapter<ModelCartItem> {
public CustomListCartItem(Activity context, ArrayList<ModelCartItem> cartItems) {
super(context, R.layout.single_cart_item, cartItems);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(this.getContext())
.inflate(R.layout.single_cart_item, parent, false);
}
TextView txtItemName = (TextView) convertView.findViewById(R.id.txtItemName);
ImageView imgItem = (ImageView) convertView.findViewById(R.id.imgItem);
EditText txtQuantity = (EditText) convertView.findViewById(R.id.txtQuantity);
Button btnRemove = (Button) convertView.findViewById(R.id.btnRemove);
final ModelCartItem cartItem = getItem(position);
if (cartItem!= null) {
txtItemName.setText(cartItem.modelItem.itemName);
Integer imageRes = getContext().getResources().getIdentifier(cartItem.modelItem.imageName, "drawable", getContext().getPackageName());
imgItem.setImageResource(imageRes);
txtQuantity.setText(Integer.toString(cartItem.quantity));
btnRemove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Controller.removeCartItem(cartItem.modelItem); //remove from cart
remove(cartItem); //remove from adapter
}
});
}
return convertView;
}
}
我的活動:在活動
public class CartActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cart);
TextView txtSubtotal = (TextView)findViewById(R.id.txtSubtotal);
txtSubtotal.setText(Controller.getCartSubtotal());
CustomListCartItem adapter = new
CustomListCartItem(CartActivity.this, Controller.getCartItems());
ListView list = (ListView) findViewById(R.id.list);
list.setAdapter(adapter);
}
}
你需要你的數據發生變化後通知您的適配器。 –
您可以創建接口並在Activity類中實現它。在適配器類中添加偵聽器。 –