I have a ListView with a delete button on each item.I want when the button is pressed the item to be removed from data(An ArrayList of HashMaps) and dismiss from ListView too.
Here is My Code:
BaseAdapter:
public class MyCustomAdapter extends BaseAdapter{
private ArrayList<HashMap<String, Object>> list;
private Context context;
public MyCustomAdapter(ArrayList<HashMap<String, Object>> list,Context context){
this.list = list;
this.context = context;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
if(view == null){
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.addresslist_item, null);
TextView address = (TextView) view.findViewById(R.id.listtxtaddress);
String add = String.valueOf(list.get(position).get("address"));
address.setText(add);
Button btndelete = (Button) view.findViewById(R.id.listbtndelete);
btndelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("check", "item_positiona:"+position);
Log.d("check", "lista:"+list.toString());
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Τιτλος επιχειρησησης");
builder.setMessage("Θέλετε να διαγάρψετε αυτή τη διεύθυνση;");
builder.setNegativeButton("NAI", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Log.d("check", "item_positionb:"+position);
list.remove(position);
notifyDataSetChanged();
}
});
builder.setPositiveButton("AKYPO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog abc = builder.create();
abc.show();
}
});
}
return view;
}
}
My problem is that the item is removed from data but the when ListView is update only the last item is removed and not the item that i select.Any ideas why this happening? Thanks in Advance.