[英]how to remove item in listview using button inside the arrayadapter
Im trying to remove an item displayed in my ListView
using a button inside my ArrayAdapter
. 我试图使用
ArrayAdapter
内的按钮删除ListView
显示的项目。 I saw getPosition
method in the ArrayAdapter
that returns the index number of the item, but I dont know to use it in the remove method of the ArrayAdapter
. 我在
ArrayAdapter
中看到了getPosition
方法,该方法返回了该项目的索引号,但是我不知道在ArrayAdapter
的remove方法中使用它。 How can I do this? 我怎样才能做到这一点? need help please.
请需要帮助。
arrayAdapter arrayAdapter
public class myOrderAdapter extends ArrayAdapter<myOrder> {
ArrayList<myOrder> list;
public class ViewHolder{
TextView tableNum;
TextView itemName;
TextView itemQuantity;
TextView custName;
Button btnStatus;
}
public myOrderAdapter(Context context, ArrayList<myOrder> orderList) {
super(context, 0,orderList);
this.list = orderList;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final myOrder orderList = getItem(position);
ViewHolder viewHolder;
viewHolder = new ViewHolder();
if(convertView == null){
convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_layout,parent,false);
viewHolder.tableNum = (TextView)convertView.findViewById(R.id.tableNum);
viewHolder.itemName = (TextView)convertView.findViewById(R.id.itemName);
viewHolder.custName = (TextView)convertView.findViewById(R.id.custName);
viewHolder.itemQuantity = (TextView)convertView.findViewById(R.id.itemQuantity);
viewHolder.btnStatus = (Button)convertView.findViewById(R.id.statusButton);
convertView.setTag(viewHolder);
}
else {
viewHolder = (ViewHolder)convertView.getTag();
}
viewHolder.tableNum.setText("Order for Table: "+orderList.getTable_id());
viewHolder.itemName.setText(orderList.getItem_name());
viewHolder.custName.setText("Customer Name: " + orderList.getCust_name());
viewHolder.itemQuantity.setText("QTY: " + orderList.getQuantity());
if(orderList.getStatus_id() == 1){
viewHolder.btnStatus.setText("Ready");
viewHolder.btnStatus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getContext(),"" + getPosition(orderList),Toast.LENGTH_SHORT).show();
// Remove item codes here..
list.remove(position);
}
});
notifyDataSetChanged();
}
return convertView;
}
viewHolder.btnStatus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(view.getContext(),"" + getPosition(orderList),Toast.LENGTH_SHORT).show();
list.remove(position); //List/ArrayList of order in your program.
}
});
notifyDataSetChanged();
ArrayAdapter also has a method remove(T Object) which can remove the item from the list or you can remove it from the ArrayList. ArrayAdapter还具有方法remove(T Object),可以从列表中删除该项目,也可以从ArrayList中将其删除。 First of all get order in getView
首先在getView中获得订单
final myOrder order = getItem(position);
orderList is the ArrayList that you passed in Constructor. orderList是您在构造函数中传递的ArrayList。
viewHolder.btnStatus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Your Toast message
orderList.remove(position);
}
});
notifyDataSetChanged();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.