Урок 52. SimpleCursorAdapter, пример использования

Обсуждение уроков
Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение KamiSempai » 06 июн 2012, 11:43

damager82 писал(а):А что конкретно пишет?
Слабо выйти в астрал и самому посмотреть?

PS: Я бы ответил, но у меня манна для создания астрального тела закончилась :D
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение damager82 » 08 июн 2012, 09:36

KamiSempai писал(а):Слабо выйти в астрал и самому посмотреть?
Предпочитаю воина, а не мага, обычно )
Немного флуда: вчера купил Diablo III ... тревожусь за судьбу уроков на сайте )))
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Vlad__1
Сообщения: 1
Зарегистрирован: 05 июл 2012, 15:10

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение Vlad__1 » 05 июл 2012, 15:17

Так сложилось, что приходится ковыряться с Java и Android
Вот это просто убило
"Хорошо, что мы создали DB.java. Благодаря ему в MainActivity.java все красиво, прозрачно и удобно"
Это такой прикол?
Что в Delphi, что в C#, задача из примера, делается тупо мышкой, писать прийдется только SQL запрос, а не 4 файла набивать мусорным, никому не нужным кодом
Более тупого, нелаконичного, нелогичного, запутанного и нечитабельного языка чем Java, наверное, и не придумать

Andy_ua
Сообщения: 21
Зарегистрирован: 06 июл 2012, 17:23

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение Andy_ua » 06 июл 2012, 17:33

>>// обработка нажатия кнопки
>> public void onButtonClick(View view) {
>> // добавляем запись
>> db.addRec("sometext " + (cursor.getCount() + 1), R.drawable.ic_launcher);
>> // обновляем курсор
>> refreshCursor();
>> // даем адаптеру новый курсор
>> scAdapter.changeCursor(cursor);
>> }

зачем так сложно? почему просто не вызвать у курсора метод requery ?
// обработка нажатия кнопки
public void onButtonClick(View view) {
// добавляем запись
db.addRec("sometext " + (cursor.getCount() + 1), R.drawable.ic_launcher);
// обновляем курсор
cursor.requery();
}

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение damager82 » 11 июл 2012, 11:12

Andy_ua писал(а):зачем так сложно? почему просто не вызвать у курсора метод requery?
Отличный вопрос. Я почему-то пропустил этот метод ...
Спасибо, поправлю урок.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

sotnik
Сообщения: 12
Зарегистрирован: 11 сен 2012, 10:37

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение sotnik » 05 окт 2012, 12:22

Код: Выделить всё

public class DB {
...
...
...
// создаем и заполняем БД
    @Override
    public void onCreate(SQLiteDatabase db) {
      db.execSQL(DB_CREATE);
      
      ContentValues cv = new ContentValues();
      for (int i = 1; i < 5; i++) {
        cv.put(COLUMN_TXT, "sometext " + i);
        cv.put(COLUMN_IMG, R.drawable.ic_launcher);
        db.insert(DB_TABLE, null, cv);
      }
    }
Как сделать чтобы вместо R.drawable.ic_launcher вставлялась каждый раз разная картинка из ресурсов(R.drawable.d1,
R.drawable.d2,R.drawable.d3,...)

AndreyI
Сообщения: 372
Зарегистрирован: 14 май 2012, 16:18

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение AndreyI » 05 окт 2012, 12:39

каждый раз когда? При создании базы, при открытии? Базу обычно создают один раз, потом просто её открывают и, при необходимости, изменяют данные.
Как изменять данные в уже созданной базе описано в уроках.

sotnik
Сообщения: 12
Зарегистрирован: 11 сен 2012, 10:37

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение sotnik » 05 окт 2012, 13:15

Не правильно выразился. При создании базы для каждой новой строки в столбец COLUMN_IMG заносилась картинка из ресурсов (R.drawable.d1,R.drawable.d2,R.drawable.d3,...), а не только одна R.drawable.ic_launcher.

Уже разобрался как сделать.

Код: Выделить всё

cv.put(COLUMN_IMG, mCtx.getResources().getIdentifier("d"+(i+1), "drawable", "com.exemple.L52"));

MadHead
Сообщения: 3
Зарегистрирован: 29 май 2012, 22:33

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение MadHead » 18 окт 2012, 22:22

Подскажите пожалуйста как можно найти файл БД на эмуляторе? Я хочу SQLite менеджером его просматривать/править...

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение rezak90 » 18 окт 2012, 22:47

MadHead писал(а):Подскажите пожалуйста как можно найти файл БД на эмуляторе? Я хочу SQLite менеджером его просматривать/править...
открываете FileExplorer в Eclips'e, идёте по ветке /data/data/<package>/database/ - обычно так, package - это приложениe.
R.id.team
Политика на форуме запрещена

Shifted
Сообщения: 7
Зарегистрирован: 12 окт 2012, 13:52

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение Shifted » 19 окт 2012, 08:53

на текущий момент SimpleCursorAdapter устарел. Гугль рекомендует использовать LoaderManager. Очень бы хотелось увидеть новый урок по этой теме.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение rezak90 » 19 окт 2012, 09:44

Shifted писал(а):на текущий момент SimpleCursorAdapter устарел. Гугль рекомендует использовать LoaderManager. Очень бы хотелось увидеть новый урок по этой теме.
устарел да не устарел, но LoaderManager требует 11 апи, так что не зачем его использовать.
R.id.team
Политика на форуме запрещена

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение KamiSempai » 19 окт 2012, 10:24

Shifted писал(а):на текущий момент SimpleCursorAdapter устарел. Гугль рекомендует использовать LoaderManager. Очень бы хотелось увидеть новый урок по этой теме.
Если быть точным, устарел только конструктор. В API 11 версии в конструкторе появился дополнительный параметр flags. А LoaderManager предлагают использовать по тому, что выборка курсора происходит в UI потоке, что конечно его тормозит. Можно сказать, что гугл всяческими способами пытается избавиться от тормозов в пользовательском интерфейсе.
rezak90 писал(а):устарел да не устарел, но LoaderManager требует 11 апи, так что не зачем его использовать.
Можно использовать android.support.v4.app.LoaderManager.
Конечно же в сочетании с android.support.v4.widget.SimpleCursorAdapter
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Shifted
Сообщения: 7
Зарегистрирован: 12 окт 2012, 13:52

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение Shifted » 19 окт 2012, 13:36

KamiSempai писал(а):Можно использовать android.support.v4.app.LoaderManager.
Конечно же в сочетании с android.support.v4.widget.SimpleCursorAdapter
Все верно. SimpleCursorAdapter работать будет и дальше. Но желательно работу с базой вынести отдельно от UI, интерфейс будет плавнее. Поэтому и возник вопрос про LoaderManager. Особенно в сочетании Sqlite, а то с пол-пинка не завелось :(
Последний раз редактировалось Shifted 19 окт 2012, 13:40, всего редактировалось 1 раз.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение rezak90 » 19 окт 2012, 13:37

если отдельно от UI то почему бы не пользоваться потоками, в них и делайте подключения/обращения к бд.
R.id.team
Политика на форуме запрещена

Shifted
Сообщения: 7
Зарегистрирован: 12 окт 2012, 13:52

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение Shifted » 19 окт 2012, 13:45

rezak90 писал(а):если отдельно от UI то почему бы не пользоваться потоками, в них и делайте подключения/обращения к бд.
Можно конечно, но не всегда и нужно.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение Foenix » 26 окт 2012, 00:55

Сделала ошибку, создала не то поле в курсоре (вместо _id - просто id). Теперь надо как-то наверное пересоздать базу, т.к. программа не запускается с ошибкой -
[10-25 21:47:07.739: E/AndroidRuntime(2594): java.lang.RuntimeException: Unable to start activity ComponentInfo{ru..../....MainActivity}: java.lang.IllegalArgumentException: column '_id' does not exist
Как обновить таблицу, удалить еще или еще там что..
Не нашла также в уроках как обновлять таблицы, когда версия БД меняется (т.е. нужно проапдейтить структуру) что и где нужно поменять, как поменять версию..
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение rezak90 » 26 окт 2012, 07:57

В FileExplorer'e находите своё приложение и там лежит бд, её удалите и запустите приложение.
R.id.team
Политика на форуме запрещена

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение Foenix » 26 окт 2012, 10:40

Я файл экспрорер искала (прочитала об этом на форуме) -и не нашла :(
просто заменила версию бд на более новую, у меня сработал апдейт (пересоздание таблицы)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 52. SimpleCursorAdapter, пример использования

Сообщение damager82 » 29 окт 2012, 16:51

Olivka писал(а):Я файл экспрорер искала (прочитала об этом на форуме) -и не нашла :(
просто заменила версию бд на более новую, у меня сработал апдейт (пересоздание таблицы)
File Explorer в Eclipse: меню Window > Show View > Other > Android > File Explorer
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Ответить