public class MainActivity extends Activity { private static final String DATABASE_NAME = "myDatabase.db"; private static final String DATABASE_TABLE = "mainTable"; private static final String COLUMN_NAME = "name"; private static final String COLUMN_ID = "_id"; private static final String DATABASE_CREATE = "create table if not exists " + DATABASE_TABLE + " (_id integer primary key autoincrement," + COLUMN_NAME + " text not null);"; private static final int CM_DELETE_ID = 1; SQLiteDatabase myDatabase; ListView lv; SimpleAdapter sAdapter; ArrayList> data; Map m; Cursor c; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myDatabase = openOrCreateDatabase(DATABASE_NAME, MODE_PRIVATE, null); myDatabase.execSQL(DATABASE_CREATE); // упаковываем данные в понятную для адаптера структуру data = new ArrayList>(); c = myDatabase.query(DATABASE_TABLE, new String[] { COLUMN_ID, COLUMN_NAME }, null, null, null, null, null); //считываем данные с БД и заносим их в data if (c.moveToFirst()) { do { m = new HashMap(); m.put(COLUMN_ID , String.valueOf(c.getInt(0))); m.put(COLUMN_NAME, c.getString(1)); data.add(m); } while (c.moveToNext()); } // массив имен атрибутов, из которых будут читаться данные String[] from = { COLUMN_NAME }; // массив ID View-компонентов, в которые будут вставлять данные int[] to = { R.id.tvText}; // создаем адаптер sAdapter = new SimpleAdapter(this, data, R.layout.item, from, to); // определяем список и присваиваем ему адаптер lv = (ListView) findViewById(R.id.lvSimple); lv.setAdapter(sAdapter); registerForContextMenu(lv); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position, long id) { CharSequence text = ((TextView) v).getText(); int duration = Toast.LENGTH_LONG; Context context = getApplicationContext(); **//КАК ПРАВИЛЬНО ВЫВЕСТИ id из БД?** (тут чушь) String where = " name = " + "'" + text + "'"; c = myDatabase.query(true, DATABASE_TABLE, new String[] { "_id" }, where, null, null, null, null, null); c.moveToFirst(); CharSequence columnValue = String.valueOf(c.getInt(0)); Toast.makeText(context, columnValue, duration).show(); } }); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); menu.add(0, CM_DELETE_ID, 0, "Удалить запись"); } @Override public boolean onContextItemSelected(MenuItem item) { if (item.getItemId() == CM_DELETE_ID) { // получаем инфу о пункте списка AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item .getMenuInfo(); // удаляем Map из коллекции, используя позицию пункта в списке data.remove(acmi.position); // уведомляем, что данные изменились sAdapter.notifyDataSetChanged(); myDatabase.delete(DATABASE_TABLE, COLUMN_ID + " = " **ЧТО СЮДА ВПИСАТЬ???**, null); return true; } return super.onContextItemSelected(item); } @Override public boolean onContextItemSelected(MenuItem item) { if (item.getItemId() == CM_DELETE_ID) { // получаем инфу о пункте списка AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item .getMenuInfo(); myDatabase.delete(DATABASE_TABLE, COLUMN_ID + " = " + acmi.id, null); cursor.requery(); return true; } return super.onContextItemSelected(item); }