Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684

Как вывести в ListView, только если тело SMS содержит определенный текст?

14.12.2015, 15:35. Показов 1616. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужно чтобы в ListView выводились только тела тех сообщений в которых есть определенный текст.

сейчас есть вот такой рабочий код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
listView = (ListView) view.findViewById(R.id.listViewSMS);
       
        // Create Inbox box URI
        Uri inboxURI = Uri.parse("content://sms/inbox");
 
        // List required columns
        String[] reqCols = new String[] { "_id", "body" };
 
        // Get Content Resolver object, which will deal with Content Provider
        ContentResolver cr = getActivity().getContentResolver();
 
        // Fetch Inbox SMS Message from Built-in Content Provider
        Cursor c = cr.query(inboxURI, reqCols, null, null, null);
  
            adapter = new SimpleCursorAdapter(getActivity(), android.R.layout.simple_list_item_1, c,
                    new String[] {"body"}, new int[] {
                    android.R.id.text1, 0 }); /*, "address"*/
            listView.setAdapter(adapter);

как можно это сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.12.2015, 15:35
Ответы с готовыми решениями:

Условие если переменная содержит определенный текст
Всем привет, помогите пожалуйста нужно написать простенький скрипт. Есть переменная Если внутри переменной есть текст http:// тогда...

Как вывести определенный текст только на странице всех новостей
Появилась проблема, нужно вывести определенный блок на странице последних новостей, адрес у нее такой /index.php?do=lastnews Как это...

Как получить определенный текст из итема в ListView?
Есть ListView в каждом итеме которого находится 1 изображение и два текста (Text1 и Text2): <ListView ItemsSource="{Binding...

13
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
14.12.2015, 15:40
- удалить из массива те, которые не содержат текст (например скопировать из массива в Arraylist с проверкой)
- сделать notifyDatasetChanged();
- PROFIT
0
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
14.12.2015, 15:54  [ТС]
Паблито,
(например скопировать из массива в Arraylist с проверкой)
а можно чуть подробнее?
0
14.12.2015, 16:03

Не по теме:

ах нет, тут такое не прокатит, пардон

0
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
15.12.2015, 17:11  [ТС]
оказалось просто, но долго :

Java
1
2
3
4
5
6
7
8
9
10
 
String filter= "искомое слово";
String searchQuery = "body like '%" + filter + "%'";
        Cursor c   = null;
        c = getActivity().getContentResolver().query(
                Uri.parse("content://sms/inbox"),
                reqCols,
                searchQuery,
                null,
                null);
Добавлено через 56 минут
получаю дату SMS а она там в таком формате long = 123456786545

как ее можно получить и сразу перевести в нормальную, чтоб передать в массив адаптера?

в адаптере сейчас так:
Java
1
2
3
adapter = new SimpleCursorAdapter(getActivity(), android.R.layout.simple_list_item_2, c,
                    new String[] {"body", "data"}, new int[] {
                    android.R.id.text1, android.R.id.text2 });
Подскажите пожалуйста кто знает?

Добавлено через 6 часов 57 минут
Ну хоть бы общую идейку, как это делают
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
15.12.2015, 18:02
disx, примерно так.
1
2 / 2 / 3
Регистрация: 04.12.2015
Сообщений: 114
15.12.2015, 19:54
Цитата Сообщение от disx Посмотреть сообщение
получаю дату SMS а она там в таком формате long = 123456786545
как ее можно получить и сразу перевести в нормальную, чтоб передать в массив адаптера?
Нагуглил.
Посмотри все различные варианты решения твоей задачи, их несколько какой будет ближе.
ОЧЕНЬ РАЗЖЕВАНО и конкретно, ты разберешся
1
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
16.12.2015, 08:33  [ТС]
Spelcrawler, lostandleft, спасибы огромные , но основная сложность в том как передать в массив адаптера вместо "data" правильное время... это как-то отдельный запрос курсором делать и создавать новый массив для переведенных дат, или можно что подкрутить к моему изначальному примеру ?
0
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
16.12.2015, 09:39
Цитата Сообщение от disx Посмотреть сообщение
как передать в массив адаптера вместо "data" правильное время
Calendar
1
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
16.12.2015, 09:41
disx, в данном случае cursorAdapter не подойдет, нужен свой кастомный адаптер и лучше использовать RecyclerView - он удобнее и проще.
1
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
17.12.2015, 08:58  [ТС]
Armagedo,
Calendar
никогда не работал с этим пока а посему не врубаюС, буду разбираться...

Spelcrawler, (не спрашиваю как это делать ), но где лучше делать запрос курсором и преобразование в человекопонятную дату в файле DialogFragment с листом, или в RecyclerАдаптере?

и вообще почему cursorAdapter в моем случае не подойдет ?
0
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
17.12.2015, 09:30
Цитата Сообщение от disx Посмотреть сообщение
никогда не работал с этим пока
Ну, придётся, поскольку это класс работы с датой/временем и даже, возможно, единственный на данный момент.

Цитата Сообщение от disx Посмотреть сообщение
и вообще почему cursorAdapter в моем случае не подойдет
В принципе, можешь переписать и для него метод getView, в котором произведешь манипуляции с полем типа "дата".
Но это равносильно написанию своего собственного адаптера, о чем и упомянул Spelcrawler...
1
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
17.12.2015, 10:04
disx, по идее не важно где это будет сделано, главное чтобы не в методах, которые элементы списка заполняют иначе будет очень много запросов к бд и все будет тормозить. Я обычно посылаю все нужные данные в удобном виде в конструктор адаптера, редко когда в самом адаптере данные получаю или преобразовываю.
1
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
11.01.2016, 15:32  [ТС]
Spelcrawler, да проще простого, полистал предыдущие твои советы:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public List<ItemData> getItemsFromCursor(Cursor cursor){
        List<ItemData> items = new ArrayList<>();
        while(cursor.moveToNext()){
            DateFormat df = new SimpleDateFormat("dd:MM:yyyy");
            String date = cursor.getString(cursor.getColumnIndex("date"));
            String title = cursor.getString(cursor.getColumnIndex("body"));
            long getDate = Long.valueOf(date);
            Date currentDate = new Date(getDate);
            date = String.valueOf(df.format(currentDate));
            items.add(new ItemData(date, title));
        }
 
        return items;
    }
вопрос решен, всем спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.01.2016, 15:32
Помогаю со студенческими работами здесь

Вывести в консоль строку, если она содержит искомый текст
Всем привет! Когда пробегаюсь по файлам директории, хочу вывести в консоль только строку, а не весь текст документа, как это делает мой...

Ввести трехзначное число. Вывести «да», если оно содержит только цифры 1, 2,0
Ввести трехзначное число. Вывести «да», если оно содержит только цифры 1, 2,0

Определить, содержит ли строка числа, если да, то вывести на экран только четные.
Дана символьная строка. Определить, содержит ли строка числа, если да, то вывести на экран только четные.

Как рандомно вывести картинку и текст так, чтобы к определенной картинке относился определенный текст?
Всем привет.Нужна помощь.как рандомно вывести картинку и текст, так чтобы к определенной картинке относился определенный текст???Помогите...

Pascal ABC. Ввести трехзначное число. Вывести «да», если оно содержит только цифры 1, 2,0
Ввести трехзначное число. Вывести «да», если оно содержит только цифры 1, 2,0


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru