Форум программистов, компьютерный форум, киберфорум
Наши страницы

Множественный выбор из бд ListView - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Удалить файл http://www.cyberforum.ru/android-dev/thread1537486.html
Как удалить файл программно
Программирование Android Как закрыть фрагмент? Нужно в самом фрагменте завершить его работу и вернуться обратно, как это реализовать http://www.cyberforum.ru/android-dev/thread1537455.html
Программирование Android Как перенести данные из БД в сервис?
Я сейчас пишу программу на андроид и в ней пользователь может внести в список (list view) данные друга - его имя и дату рождения. После внесения данных, они запоминаются в базе данных и стартует...
Программирование Android Повтор Notification
Есть уведомление, которое высвечивает текст, который берется из массива. Как сделать, что бы через некоторый промежуток времени после того, как уведомление скрыли(свайпом, или нажали по нему), оно...
Программирование Android Задать размер Layout в dp программно http://www.cyberforum.ru/android-dev/thread1537280.html
Здраствуйте! Как реализовать размер Layout в dp программно? В xml это так: android:layout_height="500dp". А на java как? LayoutParams lpView = new LayoutParams(LayoutParams.WRAP_CONTENT,...
Программирование Android Задать ScrollView программно Здраствуйте! Как сделать ScrollView с элементом LinearLayout программно? Делаю одно, не работает другое... ScrollView scroll = new ScrollView(this);... подробнее

Показать сообщение отдельно
snezhok11
1 / 1 / 0
Регистрация: 10.01.2013
Сообщений: 27

Множественный выбор из бд ListView - Программирование Android

25.09.2015, 08:38. Просмотров 240. Ответов 0
Метки (Все метки)

Здравствуйте,помогите пожалуйста разобраться.Весь инет перерыл,ничего не нашел на Русском языке.
Есть ListView с множественным выбором из бд.Как вывести данные из бд и вывести на экран я понял через SimpleCursorAdapter ,а вот как мне при нажатии на элементы в ListView получить данные элемента из бд я не знаю.Как выдернуть данные из string-array я заню,а из бд нет.
из string-array вот этим кодом

Java
1
2
3
4
5
6
7
8
9
10
  public void onClick(View arg0) {
    // пишем в лог выделенные элементы
    Log.d(LOG_TAG, "checked: ");
    SparseBooleanArray sbArray = lvMain.getCheckedItemPositions();
    for (int i = 0; i < sbArray.size(); i++) {
      int key = sbArray.keyAt(i);
      if (sbArray.get(key))
        Log.d(LOG_TAG, names[key]);
    }
  }
К примеру нужно во множественном выборе записать значаения нажатых элементов id,name.
Мой код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
public class MainActivity extends FragmentActivity implements LoaderCallbacks<Cursor> {
    final String LOG_TAG = "myLogs";
    private static final int CM_DELETE_ID = 1;
    ListView lvData;
    DB db;
    SimpleCursorAdapter scAdapter;
    
 
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        // открываем подключение к БД
        db = new DB(this);
        db.open();
 
        // формируем столбцы сопоставления
        String[] from = new String[] { DB.COLUMN_TXT};
        int[] to = new int[] {  android.R.id.text1 };
 
        // создааем адаптер и настраиваем список
        scAdapter = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_multiple_choice,  null, from, to, 0);
        lvData = (ListView) findViewById(R.id.lvData);
        lvData.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
        Log.d(LOG_TAG, DB.COLUMN_TXT);
 
        lvData.setAdapter(scAdapter);
 
        // добавляем контекстное меню к списку
        registerForContextMenu(lvData);
 
        // создаем лоадер для чтения данных
        getSupportLoaderManager().initLoader(0, null, this);
    }
 
  
 
    public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(0, CM_DELETE_ID, 0, R.string.delete_record);
    }
 
    public boolean onContextItemSelected(MenuItem item) {
        if (item.getItemId() == CM_DELETE_ID) {
            // получаем из пункта контекстного меню данные по пункту списка
            AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
                    .getMenuInfo();
            // извлекаем id записи и удаляем соответствующую запись в БД
            db.delRec(acmi.id);
            // получаем новый курсор с данными
            getSupportLoaderManager().getLoader(0).forceLoad();
            return true;
        }
        return super.onContextItemSelected(item);
    }
 
    protected void onDestroy() {
        super.onDestroy();
        // закрываем подключение при выходе
        db.close();
    }
 
    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle bndl) {
        return new MyCursorLoader(this, db);
    }
 
    @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
        scAdapter.swapCursor(cursor);
    }
 
    @Override
    public void onLoaderReset(Loader<Cursor> loader) {
    }
 
    static class MyCursorLoader extends CursorLoader {
 
        DB db;
 
        public MyCursorLoader(Context context, DB db) {
            super(context);
            this.db = db;
        }
 
        @Override
        public Cursor loadInBackground() {
            Cursor cursor = db.getAllData();
            try {
                TimeUnit.SECONDS.sleep(3);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return cursor;
        }
 
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru