Страница 19 из 19

Re: Урок 136. CursorLoader

Добавлено: 27 апр 2016, 00:47
Foenix
надо научиться работать с логами..
По ссылке в подписи.

Re: Урок 136. CursorLoader

Добавлено: 27 апр 2016, 11:52
yume
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"/>

Re: Урок 136. CursorLoader

Добавлено: 28 апр 2016, 10:59
Foenix
значить у тебя лэйаут не инфлейтится, или инфлейтится не тот лэйаут выше, что нужно, в котором нет такой вьюшки

Re: Урок 136. CursorLoader

Добавлено: 28 апр 2016, 12:17
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)

Re: Урок 136. CursorLoader

Добавлено: 30 апр 2016, 13:12
yume
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

Re: Урок 136. CursorLoader

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

Re: Урок 136. CursorLoader

Добавлено: 26 май 2016, 10:50
Foenix
шифровка какая-то, а не вопрос.

Re: Урок 136. CursorLoader

Добавлено: 07 июл 2016, 23:14
andreyua
Мне одному кажется что если заменить код:

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

static class MyCursorLoader extends CursorLoader{
на

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

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

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

Re: Урок 136. CursorLoader

Добавлено: 27 сен 2016, 11:47
dram_dram
Почему метод 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;
}
}

Re: Урок 136. CursorLoader

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

Re: Урок 136. CursorLoader

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

Re: Урок 136. CursorLoader

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

Re: Урок 136. CursorLoader

Добавлено: 27 апр 2017, 15:51
borisov-aa
Подскажите, если в данном уроке в БД есть поле дата в формате long, как его отобразить в виде дд.ММ.уууу в ListView?