Урок 136. CursorLoader

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

Re: Урок 136. CursorLoader

Сообщение Foenix » 27 апр 2016, 00:47

надо научиться работать с логами..
По ссылке в подписи.
R.id.team

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

yume
Сообщения: 6
Зарегистрирован: 20 мар 2016, 14:44

Re: Урок 136. CursorLoader

Сообщение yume » 27 апр 2016, 11:52

Foenix писал(а):надо научиться работать с логами..
По ссылке в подписи.
Научился. Ругается на строку sv.setOnQueryTextListener(new android.widget.SearchView.OnQueryTextListener() {...}, говоря о том, что sv = null. Однако, я не понимаю, почему оно может быть null. Вроде ведь всё правильно делаю:

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

private SearchView sv;

sv = (SearchView) findViewById(R.id.search);
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {...}
menu.xml:

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

    <item
        android:id="@+id/search"
        android:icon="@android:drawable/ic_menu_search"
        android:orderInCategory="100"
        android:title="@string/action_search"
        app:showAsAction="collapseActionView|ifRoom"
        app:actionViewClass="android.widget.SearchView"/>

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

Re: Урок 136. CursorLoader

Сообщение Foenix » 28 апр 2016, 10:59

значить у тебя лэйаут не инфлейтится, или инфлейтится не тот лэйаут выше, что нужно, в котором нет такой вьюшки
R.id.team

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

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 136. CursorLoader

Сообщение klblk » 28 апр 2016, 12:17

actionView из MenuItem так не получается. Насколько я знаю это вообще не относится к этому уроку.
[syntax=java5]MenuItem searchItem = menu.findItem(R.id.search);
SearchView sv = (SearchView) MenuItemCompat.getActionView(searchItem); // searchItem.getActionView(), тоже наверное подойдет, но не помню с какой версии api его можно использовать[/syntax]
Еще возможно лучше использовать "android.support.v7.widget.SearchView", но это субъективно (по идее версия должна быть более актуальная и лучше работать с другими компонентами из support library)

yume
Сообщения: 6
Зарегистрирован: 20 мар 2016, 14:44

Re: Урок 136. CursorLoader

Сообщение yume » 30 апр 2016, 13:12

Foenix писал(а):значить у тебя лэйаут не инфлейтится, или инфлейтится не тот лэйаут выше, что нужно, в котором нет такой вьюшки
klblk писал(а):actionView из MenuItem так не получается. Насколько я знаю это вообще не относится к этому уроку.
[syntax=java5]MenuItem searchItem = menu.findItem(R.id.search);
SearchView sv = (SearchView) MenuItemCompat.getActionView(searchItem); // searchItem.getActionView(), тоже наверное подойдет, но не помню с какой версии api его можно использовать[/syntax]
Еще возможно лучше использовать "android.support.v7.widget.SearchView", но это субъективно (по идее версия должна быть более актуальная и лучше работать с другими компонентами из support library)
Спасибо. От ошибки избавился. С обновлением данных пришлось посидеть, но всё таки пришёл к рабочему решению :D

lossiel
Сообщения: 1
Зарегистрирован: 25 май 2016, 17:36

Re: Урок 136. CursorLoader

Сообщение lossiel » 25 май 2016, 21:35

Не могу вывести значение столбца из бд в toast, , но получается вывести только id (position), или, если использовать .getItemAtPosition(position), то получаю строку вида android.database.sqlite.SQliteCursor@.... Прошу помощи в решении.

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

Re: Урок 136. CursorLoader

Сообщение Foenix » 26 май 2016, 10:50

шифровка какая-то, а не вопрос.
R.id.team

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

andreyua
Сообщения: 4
Зарегистрирован: 25 фев 2014, 19:55

Re: Урок 136. CursorLoader

Сообщение andreyua » 07 июл 2016, 23:14

Мне одному кажется что если заменить код:

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

static class MyCursorLoader extends CursorLoader{
на

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

static class MyCursorLoader extends AsyncTaskLoader<Cursor> {
то ничего не изменится?

На кой черт тогда юзать класс CursorLoader :lol: ?

dram_dram
Сообщения: 2
Зарегистрирован: 27 сен 2016, 11:38

Re: Урок 136. CursorLoader

Сообщение dram_dram » 27 сен 2016, 11:47

Почему метод MyCursorLoader работает только как static? Хочу менять параметры запроса Cursor, например хочу сортировать таким образом, изменяя по параметр orderBy через радио кнопку
//Метод в DB.java
public Cursor getElement(String orderBy) {
return mDB.query(DB_TABLE, null,null,null,null,null,orderBy);}
//Изменил MyCursorLoader
public class MyCursorLoader extends CursorLoader {
DBInvent db;
String order;
public MyCursorLoader(Context context,DBInvent db, String orderBy) {
super(context);
this.db=db;
order=orderBy;
}

@Override
public Cursor loadInBackground() {
Cursor cursor=db.getElement(order);
return cursor;
}
}

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

Re: Урок 136. CursorLoader

Сообщение Foenix » 27 сен 2016, 22:13

так никто не делает, не нужно наследоваться.
ЧТобы вернуть CursorLoader
просто создавай его через конструктор, меняя sql
new CursorLoader(context, CONTENT_URI, null, strQ.toString(), null, null);
R.id.team

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

dram_dram
Сообщения: 2
Зарегистрирован: 27 сен 2016, 11:38

Re: Урок 136. CursorLoader

Сообщение dram_dram » 28 сен 2016, 06:34

Foenix писал(а):так никто не делает, не нужно наследоваться.
ЧТобы вернуть CursorLoader
просто создавай его через конструктор, меняя sql
new CursorLoader(context, CONTENT_URI, null, strQ.toString(), null, null);
А в контексте данного урока как записать Uri для нашей БД?

mandrake
Сообщения: 4
Зарегистрирован: 10 июл 2016, 23:05

Re: Урок 136. CursorLoader

Сообщение mandrake » 28 фев 2017, 14:00

Добрый день,
помогите пожалуйста найти решение проблемы:
Есть курсор на 1000 строк получен через query - "select * from tb1 order by Random()"
Данные курсора отображаются в listview. Кроме того к listview привязано контекстное меню, в котором можна удалять или изменять значения в базе. После изменений listview рефрешится с помощью getSupportLoaderManager().getLoader(0).forceLoad(); и тогда начинается самое интересное - запрос возвращает таблицу отсортированую уже по другому, следственно в listview данные тоже "перемешиваюся". Как можна внести изменения в базу и отобразить их в listview сохраняя предыдущий Random порядок?

borisov-aa
Сообщения: 1
Зарегистрирован: 27 апр 2017, 15:44

Re: Урок 136. CursorLoader

Сообщение borisov-aa » 27 апр 2017, 15:51

Подскажите, если в данном уроке в БД есть поле дата в формате long, как его отобразить в виде дд.ММ.уууу в ListView?

Ответить