Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.27 KB | None | 0 0
  1. public class MainActivity extends Activity {
  2. private static final String DATABASE_NAME = "myDatabase.db";
  3. private static final String DATABASE_TABLE = "mainTable";
  4. private static final String COLUMN_NAME = "name";
  5. private static final String COLUMN_ID = "_id";
  6.  
  7. private static final String DATABASE_CREATE = "create table if not exists "
  8. + DATABASE_TABLE + " (_id integer primary key autoincrement,"
  9. + COLUMN_NAME + " text not null);";
  10.  
  11. private static final int CM_DELETE_ID = 1;
  12.  
  13. SQLiteDatabase myDatabase;
  14.  
  15. ListView lv;
  16. SimpleAdapter sAdapter;
  17. ArrayList<Map<String, String>> data;
  18. Map<String, String> m;
  19. Cursor c;
  20.  
  21. @Override
  22. protected void onCreate(Bundle savedInstanceState) {
  23. super.onCreate(savedInstanceState);
  24. setContentView(R.layout.main);
  25.  
  26. myDatabase = openOrCreateDatabase(DATABASE_NAME, MODE_PRIVATE, null);
  27. myDatabase.execSQL(DATABASE_CREATE);
  28.  
  29. // упаковываем данные в понятную для адаптера структуру
  30. data = new ArrayList<Map<String, String>>();
  31. c = myDatabase.query(DATABASE_TABLE, new String[] { COLUMN_ID, COLUMN_NAME }, null, null, null, null, null);
  32.  
  33. //считываем данные с БД и заносим их в data
  34. if (c.moveToFirst()) {
  35. do {
  36. m = new HashMap<String, String>();
  37. m.put(COLUMN_ID , String.valueOf(c.getInt(0)));
  38. m.put(COLUMN_NAME, c.getString(1));
  39.  
  40. data.add(m);
  41. } while (c.moveToNext());
  42. }
  43.  
  44. // массив имен атрибутов, из которых будут читаться данные
  45. String[] from = { COLUMN_NAME };
  46. // массив ID View-компонентов, в которые будут вставлять данные
  47. int[] to = { R.id.tvText};
  48.  
  49. // создаем адаптер
  50. sAdapter = new SimpleAdapter(this, data, R.layout.item, from, to);
  51.  
  52. // определяем список и присваиваем ему адаптер
  53. lv = (ListView) findViewById(R.id.lvSimple);
  54. lv.setAdapter(sAdapter);
  55. registerForContextMenu(lv);
  56.  
  57. lv.setOnItemClickListener(new OnItemClickListener() {
  58. public void onItemClick(AdapterView<?> parent, View v,
  59. int position, long id) {
  60.  
  61. CharSequence text = ((TextView) v).getText();
  62.  
  63. int duration = Toast.LENGTH_LONG;
  64. Context context = getApplicationContext();
  65.  
  66. **//КАК ПРАВИЛЬНО ВЫВЕСТИ id из БД?** (тут чушь)
  67. String where = " name = " + "'" + text + "'";
  68.  
  69. c = myDatabase.query(true, DATABASE_TABLE,
  70. new String[] { "_id" }, where, null, null, null, null,
  71. null);
  72. c.moveToFirst();
  73.  
  74. CharSequence columnValue = String.valueOf(c.getInt(0));
  75.  
  76. Toast.makeText(context, columnValue, duration).show();
  77. }
  78. });
  79. }
  80.  
  81. @Override
  82. public void onCreateContextMenu(ContextMenu menu, View v,
  83. ContextMenu.ContextMenuInfo menuInfo) {
  84.  
  85. super.onCreateContextMenu(menu, v, menuInfo);
  86. menu.add(0, CM_DELETE_ID, 0, "Удалить запись");
  87. }
  88.  
  89. @Override
  90. public boolean onContextItemSelected(MenuItem item) {
  91. if (item.getItemId() == CM_DELETE_ID) {
  92. // получаем инфу о пункте списка
  93. AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
  94. .getMenuInfo();
  95.  
  96. // удаляем Map из коллекции, используя позицию пункта в списке
  97. data.remove(acmi.position);
  98. // уведомляем, что данные изменились
  99. sAdapter.notifyDataSetChanged();
  100.  
  101. myDatabase.delete(DATABASE_TABLE, COLUMN_ID + " = " **ЧТО СЮДА ВПИСАТЬ???**, null);
  102.  
  103. return true;
  104. }
  105. return super.onContextItemSelected(item);
  106. }
  107.  
  108. @Override
  109. public boolean onContextItemSelected(MenuItem item) {
  110. if (item.getItemId() == CM_DELETE_ID) {
  111. // получаем инфу о пункте списка
  112. AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
  113. .getMenuInfo();
  114.  
  115. myDatabase.delete(DATABASE_TABLE, COLUMN_ID + " = " + acmi.id, null);
  116. cursor.requery();
  117. return true;
  118. }
  119. return super.onContextItemSelected(item);
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement