我有一个名为的自定义阵列适配器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类中实现它。在适配器类中添加侦听器。 –