С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
ul_mralex
2 / 2 / 0
Регистрация: 02.04.2013
Сообщений: 103
#1

SQLite поиск по двум значениям (динамический поиск) - Программирование Android

28.06.2016, 10:14. Просмотров 337. Ответов 0
Метки нет (Все метки)

Здравствуйте!
Помогите выполнить поиск в базе по двум значениям. Пока поиск осуществляется по одному реквизиту в двух полях MAR и OST, мне необходимо что бы поиск был по двум реквизитам и в двух полях одновременно...
С андроид студио и с "разработкой" приложения для телефона столкнулся впервые, поэтому разобраться сам в этой ситуации не могу, прошу вашей помощи.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
    ListView userList;
    EditText userFilter;
    DatabaseHelper sqlHelper;
    Cursor userCursor;
    SimpleCursorAdapter userAdapter;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tram);
 
        userList = (ListView)findViewById(R.id.userList);
        userFilter = (EditText)findViewById(R.id.userFilter);
        sqlHelper = new DatabaseHelper(getApplicationContext());
        // создаем базу данных
        sqlHelper.create_db();
    }
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    @Override
    public void onResume(){
        super.onResume();
        try {
            sqlHelper.open();
            userCursor = sqlHelper.database.rawQuery("select * from " + DatabaseHelper.TABLE, null);
            String[] headers = new String[]{DatabaseHelper.COLUMN_MAR, DatabaseHelper.COLUMN_OST, DatabaseHelper.COLUMN_TIME,DatabaseHelper.COLUMN_NAPR};
            userAdapter = new SimpleCursorAdapter(this, R.layout.my_,
                    userCursor, headers, new int[]{R.id.textmar, R.id.textost, R.id.texttime, R.id.textnapr}, 0);
 
            if(!userFilter.getText().toString().isEmpty())
                userAdapter.getFilter().filter(userFilter.getText().toString());
 
            userFilter.addTextChangedListener(new TextWatcher() {
 
                public void afterTextChanged(Editable s) {
                }
 
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                }
 
                public void onTextChanged(CharSequence s, int start, int before, int count) {
 
                    userAdapter.getFilter().filter(s.toString());
                }
            });
 
 
            userAdapter.setFilterQueryProvider(new FilterQueryProvider() {
                @Override
                public Cursor runQuery(CharSequence constraint) {
 
 
                    if (constraint == null || constraint.length() == 0)  {
 
                        return sqlHelper.database.rawQuery("select * from " + DatabaseHelper.TABLE, null);
                    }
                    else {
 
                        return sqlHelper.database.rawQuery("select * from " + DatabaseHelper.TABLE +
                                        " where " + DatabaseHelper.COLUMN_MAR + " like ?" + " or "
                                        + DatabaseHelper.COLUMN_OST + " like ?",
                                new String[]{"%" + constraint.toString() + "%", "%" + constraint.toString() + "%"});
 
 
                        //return sqlHelper.database.rawQuery("select * from " + DatabaseHelper.TABLE + " where " +
                        //      DatabaseHelper.COLUMN_OST + " like ?", new String[]{"%" + constraint.toString() + "%"});
                    }
                }
            });
 
            userList.setAdapter(userAdapter);
        }
        catch (SQLException ex){}
    }
 
    @Override
    public void onDestroy(){
        super.onDestroy();
        // Закрываем подключения
        sqlHelper.database.close();
        userCursor.close();
    }
}
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" android:orientation="vertical"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:weightSum="1">
    <EditText android:id="@+id/userFilter" android:layout_width="match_parent"
        android:layout_height="wrap_content" android:ems="10"
        android:hint="Введите первый параметр"
        />
 
    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Введите второй параметр" />
 
    <ListView
        android:id="@+id/userList"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:focusable="true"
        android:focusableInTouchMode="true">
    </ListView>
 
</LinearLayout>
Добавлено через 21 час 31 минуту
Есть ли у кого примеры расширенного поиска в базе по нескольким параметрам в нескольких полях? Можно ли вообще это реализовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2016, 10:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос SQLite поиск по двум значениям (динамический поиск) (Программирование Android):

Поиск ВПР по двум значениям - MS Excel
Доброго времени суток! помогите пожалуйста решить задачку После праздников то ли голова не варит, то ли реально не понимаю: как...

В описание класса добавить поиск максимального по двум значениям - C#
: Ввести класс с полями 1)марка ТВ 2)диагональ 3) цена. Заполнить массив 5-ю объектами. Вывести номера записей: I)с максимальной...

Поиск значения по двум двум параметрам (вертикали и горизонтали) - MS Excel
Добрый день! Прошу, пожалуйста, помощи. Никак не могу понять ,какие формулы необходимо применить. Имеем: таблицу шашечного...

Поиск в <select> по значениям из БД - JavaScript
Здравствуйте! Заранее прощу прощения, если не в ту тему написала вопрос (но вроде все верно). Как сделать в &lt;select&gt; поиск по введённому...

Поиск по значениям массива - PHP
Всем привет) проблема следующего характера.. у меня есть массив, в нем куча значений, мне нужно отобрать значения массива, в которых...

Поиск по нескольким значениям - PHP
Доброе утро всем. Ребята такой вопрос как сделать поиск сразу по нескольким значениям Если к примеру в поисковой строке указать...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2016, 10:14
Привет! Вот еще темы с ответами:

Поиск по полученным значениям - SQL Server
Есть 2 таблички - Car и Person, связаны они через поле passport. Хочу получить всех людей, которые имеют такие же машины, как и человек с...

Поиск в DataGridView по числовым значениям - Visual Basic .NET
Как сделать так чтобы поиск был и по числовым значениям, а не только по текстовым? при вводе цифры выдает ошибку Код: Private Sub...

Поиск результатов по нескольким значениям - MS Excel
Добрый день, Думаю, для гуру EXCEL моя задачка не покажется сложной, но я сломала уже голову, пытаясь сделать следующее. Есть 3...

Поиск по нескольким значениям VBA - VBA
Добрый день, форумчане! Устроился стажером в компанию для выполнения задачи по автоматизации работы с документооборотом. Суть в...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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