I have a listview that gets the data from an Arraylist and this Arraylist gets data from a database. Now I want to delete an item from the listview and also I want to delete this record from database. In addition, the delete option is in a contextmenu. I just want to know how to send the record's Id to the listview items and also the delete method in the dataModel. I can have the ID by reslist.getId()
Here is getView and contextmenu:
public View getView(int i, View view, ViewGroup viewGroup) {
View v = view;
if (v == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.list_layout, null);
}
TextView tv1 = (TextView) v.findViewById(R.id.resName);
TextView tv2 = (TextView) v.findViewById(R.id.resAddress);
ImageView iv = (ImageView) v.findViewById(R.id.resType);
tv1.setText(resList.get(i).getName());
tv2.setText(resList.get(i).getAddress());
iv.setImageResource(R.drawable.tpng);
if(resList.get(i).getType().equals("takeaway")){
iv.setImageResource(R.drawable.tpng);
}else if(resList.get(i).getType().equals("delivery")){
iv.setImageResource(R.drawable.dpng);
}else if(resList.get(i).getType().equals("sitdown")){
iv.setImageResource(R.drawable.spng);
}
registerForContextMenu(v);
return v;
}
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
getMenuInflater().inflate(R.menu.list_menu, menu);
super.onCreateContextMenu(menu, v, menuInfo);
}
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.remove:
// I should use delete method here and I just want Item Id
break;
case R.id.item2:
break;
}
return super.onContextItemSelected(item);
}
and this is the delete method in dataModel
public void deleteRestaurant(int id){
SQLiteDatabase db = getWritableDatabase();
db.execSQL("DELETE FROM " + TABLE_RESTAURANT + "WHERE" + KEY_ID + " = ?", new String[] {String.valueOf(id)});
}