I am expanding the BaseAdapter to create a custom list string. I have a context menu that opens every time a user holds on a line and asks if he wants to delete it. However, how to delete a row? A hashmap is just test data.
private MyListAdapter myListAdapter; private ArrayList<HashMap<String, String>> items; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); items = new ArrayList<HashMap<String,String>>(); HashMap<String, String> map1 = new HashMap<String, String>(); map1.put("date", "10/09/2011"); map1.put("distance", "309 km"); map1.put("duration", "1t 45min"); items.add(map1); myListAdapter = new MyListAdapter(this, items); setListAdapter(myListAdapter); getListView().setOnCreateContextMenuListener(this); } private class MyListAdapter extends BaseAdapter { private Context context; private ArrayList<HashMap<String, String>> items; public MyListAdapter(Context context, ArrayList<HashMap<String, String>> items) { this.context = context; this.items = items; } @Override public int getCount() { return items.size(); } @Override public Object getItem(int position) { return items.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if (view == null) { LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = layoutInflater.inflate(R.layout.row_log, null); } TextView rowLogOverview = (TextView) view.findViewById(R.id.rowLogOverview); HashMap<String, String> item = items.get(position); rowLogOverview.setText(item.get("date")); return view; } }
Luckyluke
source share