Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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<Map<String, String>> data;
- Map<String, String> 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<Map<String, String>>();
- c = myDatabase.query(DATABASE_TABLE, new String[] { COLUMN_ID, COLUMN_NAME }, null, null, null, null, null);
- //считываем данные с БД и заносим их в data
- if (c.moveToFirst()) {
- do {
- m = new HashMap<String, String>();
- 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);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement