Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
SoloIlya
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 64
#1

Выборка по дате в listView - Программирование Android

31.05.2013, 14:39. Просмотров 643. Ответов 4
Метки нет (Все метки)

Здравствуйте!
У меня есть таблица БД, в которой 4 поля, одно из них дата (день, месяц, год), мне нужно в листвью вывести данные этой таблице по заданной дате, которую мы берем из текствью.

Java
1
2
final Cursor c = sqliteDB.query(Names.TABLE_NAME, null, null, null, null, null,
                Names.DEFAULT_SORT);
Что нужно дописать в этот кусок кода чтоб реализовать мою задачу?

Добавлено через 1 час 4 минуты

Java
1
2
3
4
5
String having = null;
final String[] columns = { NamesColumns.NAME, NamesColumns.DATE, NamesColumns.PRICE };
having = "date=" +tView4;
final Cursor c = sqliteDB.query(Names.TABLE_NAME, null, null, null, having, null,
Names.DEFAULT_SORT);
пишу вот так, но желаемого результата все ровно нет(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 14:39     Выборка по дате в listView
Посмотрите здесь:

ListView. После добавления кнопки перестал быть доступен сам ListView - Программирование Android
Кастомизировал ListView с помощью нескольких TextView. Но после того, как добавил ImageButton сам список стал недоступен для клика, а...

Listview вывод данных и переход по нажатию на другой Listview SQLite - Программирование Android
Доброго извините за название темы, долго не мог сформировать название, В общем у меня беда с пытаюсь написать программу где первый экран...

Данные из SQlite в ListView, обработка события ListView - Программирование Android
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД. mList.setOnItemClickListener(new...

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton? - Программирование Android
Добрый день. Затрудняюсь понять один момент: У меня есть ListView, который заполнен Items. Каждый Item - это свой XML. Пока...

Копирование данных из 1 listView во 2 listView - Программирование Android
Нужно что бы при нажатии на один элемент в первом ListView он копировался во второй ListView причём многократно.Но я использую...

Использование ListView в ListView - Программирование Android
Всем привет. Можете показать как использовать ListView в ListView, с заполнением как внешнего ListView, так и внутреннего причем с...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 251
31.05.2013, 15:02     Выборка по дате в listView #2
А в каком формате у вас хранится дата в таблице?
SoloIlya
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 64
31.05.2013, 15:24  [ТС]     Выборка по дате в listView #3
Символьном.
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 251
31.05.2013, 15:40     Выборка по дате в listView #4
Получается вы каждый раз сравниваете строку даты, сформированную в коде программы со строкой, хранящейся в БД, так?
Не могу утверждать точно, но все-таки хранить дату в символьном формате в БД - не очень корректно. Самый лучший вариант - в миллисекундах, в формате long (или integer в БД SQLite). Зато эту цифру можно без проблем из БД получить и перевести ее в тип Date или Calendar в Java-коде, а потом сравнивать. Или наоборот, подготовить нужную дату в миллисекундах в Java-коде и сравнивать ее с цифрой в БД.

Добавлено через 5 минут
Вот например, как можно определить границы нужного дня:
Java
1
2
3
4
5
6
7
8
9
10
11
// nowLong - дата, которую вы вводите в миллисекундах
Date nownow=new Date(nowLong);
            Calendar cal=Calendar.getInstance();
            cal.setTime(nownow);
            cal.set(Calendar.HOUR_OF_DAY, 0); // здесь часы, минуты, секунды и миллисекунды обнуляем, то есть находим начало введенного дня
            cal.set(Calendar.MINUTE, 0);
            cal.set(Calendar.SECOND, 0);
            cal.set(Calendar.MILLISECOND, 0);
            long beginday=cal.getTimeInMillis(); // переводим полученную календарную дату в миллисекунды
    
            long nextday=beginday+(1000*60*60*24); // получаем следующий день в миллисекундах (прибавляем количество миллисекунд в сутках)
все, таперь можно осуществлять поиск в БД, где дата >= beginday и строго меньше nextday
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2013, 19:12     Выборка по дате в listView
Еще ссылки по теме:

Переход из Listview в Listview - Программирование Android
Как сделать, что бы когда нажимаешь в главном листвью на кнопку, открывалось новое нужное(т.е. то по которому тапнули) активити с другим...

Поиск по дате в БД - Программирование Android
В базе данных в столбце dateFilm хранится дата фильма(dd.MM.yyyy) тип long,полученная методом .getTime(). В поле типа Date dateLong...

Получить TimeZone по дате - Программирование Android
Добрый вечер. Нужно получить разницу во времени (TimeZone offset) , например если в Москве 2 часа дня то в Торронто 10 часов утра, т.е...

Оповещение по заданному времени и дате - Программирование Android
Здравствуйте, есть задача вывести оповещение по заданной пользователем дате и времени. В сети много примеров, но не понятно как с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.05.2013, 19:12     Выборка по дате в listView #5
http://www.sqlite.org/lang_datefunc.html
Yandex
Объявления
31.05.2013, 19:12     Выборка по дате в listView
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru