Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Мобильная разработка (Android)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2016, 09:54   #1
ul_mrAlex
Пользователь
 
Регистрация: 01.04.2013
Сообщений: 23
По умолчанию Поиск по двум параметрам в существующей базе

Здравствуйте! Помогите реализовать поиск по двум параметрам и двум полям.
Осуществлен обычный поиск в базе по полям с одним параметром (одно поисковое поле).
PHP код:
       import android.annotation.TargetApi;
        
import android.app.Activity;
        
import android.os.Build;
        
import android.os.Bundle;

        
import android.os.Bundle;
        
import android.support.v7.app.AppCompatActivity;
        
import android.text.Editable;
        
import android.text.TextWatcher;
        
import android.widget.EditText;
        
import android.widget.FilterQueryProvider;
        
import android.widget.ListView;
        
import android.database.Cursor;
        
import android.widget.SimpleCursorAdapter;
        
import java.sql.SQLException;

public class 
tram_ extends AppCompatActivity {

    
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.TABLEnull);
            
String[] headers = new String[]{DatabaseHelper.COLUMN_MARDatabaseHelper.COLUMN_OSTDatabaseHelper.COLUMN_TIME,DatabaseHelper.COLUMN_NAPR};
            
userAdapter = new SimpleCursorAdapter(thisR.layout.my_,
                    
userCursorheaders, new int[]{R.id.textmarR.id.textostR.id.texttimeR.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 sint startint countint after) {
                }
                public 
void onTextChanged(CharSequence sint startint beforeint 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.TABLEnull);
                    }
                    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() + "%"});
                    }
                }
            });

            
userList.setAdapter(userAdapter);
        }
        catch (
SQLException ex){}
    }

    @
Override
    
public void onDestroy(){
        
super.onDestroy();
        
// Закрываем подключения
        
sqlHelper.database.close();
        
userCursor.close();
    }

и
Сам xml
PHP код:
<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
Поиск сейчас осуществляется через поле @+id/userFilter в двух полях базы, это text_mar и text_ost, Что бы было понятнее, мне нужен поиск одновременный т. е. расширенный
@+id/userFilter в поле text_mar
а, допустим
@+id/editText в поле text_ost

Можно ли такое вообще реализовать
ul_mrAlex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск значения по двум параметрам piRoman Microsoft Office Excel 5 20.02.2014 16:02
Быстрая сортировка массива по двум параметрам. С#. Necare Помощь студентам 2 14.09.2011 19:01
как отбирать по двум параметрам и считать количество. NikolayHAOS Помощь студентам 1 25.02.2011 10:43
Сортировка значений по двум параметрам bvkdrv Microsoft Office Excel 11 06.02.2011 21:35
Создать таблицу Access в существующей базе. Nowichok БД в Delphi 6 10.02.2007 18:32