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

Не выполняется поиск в ListView - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Как задать прозрачный фон? http://www.cyberforum.ru/android-dev/thread930031.html
Использую прогресс бар горизонтальный и хочу его кастамизировать. Ниже код: <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background"> <shape> <gradient android:startColor="#000001" android:centerColor="#0b131e" android:centerY="0.75"
Android Работает ли код когда приложение закрыто ? Не могу понять, должен ли этот код работать когда приложение закрыто. При реальных тестах не работает мне кажется. Вот сам код: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <EditText android:id="@+id/point_latitude" ... http://www.cyberforum.ru/android-dev/thread929881.html
Layout изменение высоты Android
Здрасте) У меня есть два layout'а, один под другим. На нижнем есть кнопка. Как сделать так чтобы при нажатие кнопки или при еще перемещение(типо тянуть ее вверх или вниз), верхний layout изменял свой размер, вытягивался или сужался(или полностью пропадал)? P.S. на верхнем layout'е расположенные разные элементы, кнопки, картинки и т.д.
Android Что происходит при вызове метода popBackStack?
Всем привет ;-) Буду благодарен за подробнее обьснение. Читаю android Developers не могу понять принцип работы функции, popBackStack(). Что проходит при ее вызове. http://developer.android.com/reference/android/app/FragmentManager.html#popBackStack().
Android Долго закрывается активити http://www.cyberforum.ru/android-dev/thread929655.html
Нажимаю кнопку бек и активность закрывается секунд 10. Пробовал в public void onBackPressed() финиш вызывать тоже самое. Из за чего это? Добавлено через 16 часов 25 минут самое главно что это происходит с пустой активностью, она грузит только разметку.
Android Передача Intent через BroadcastReceiver Наткнулся на следующую проблему. Есть активити и сервис. В onCreate регистрирую BroadcastReceiver, выставляю фильтр. BroadcastReceiver receiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { if (intent != null) { Bundle b = intent.getExtras(); //почему здесь null? String s =... подробнее

Показать сообщение отдельно
Sherstyuk_Ya_N
4 / 4 / 0
Регистрация: 22.07.2013
Сообщений: 30
29.07.2013, 20:07  [ТС]     Не выполняется поиск в ListView
Ну вот мой DatabaseConnector
************************

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
package database;
 
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
 
 
public class DatabaseConnector {
    
    private static final String DB_NAME = "Koordinat.db";//===== Имя базы данных, koord_knp- имя таблицы
    private SQLiteDatabase database;
    private DatabaseOpenHelper dbOpenHelper;
    
       
    public DatabaseConnector(Context context) {
        
        dbOpenHelper = new DatabaseOpenHelper(context, DB_NAME, null, 1);
        
    }
    
       public void open() throws SQLException 
       {
          //открытой базы данных при чтении / записи режима
          database = dbOpenHelper.getWritableDatabase();
       } 
 
       public void close() 
       {
          if (database != null)
             database.close();
       }       
       
       public void insertContact(String name, String xzeli, String yzeli, String hzeli) 
               {
                  ContentValues newCon = new ContentValues();
                  newCon.put("name", name);
                  newCon.put("xzeli", xzeli);
                  newCon.put("yzeli", yzeli);
                  newCon.put("hzeli", hzeli);
 
                  open();
                  database.insert("koord_knp", null, newCon);
                  close();
               }
 
            
               public void updateContact(long id, String name, String xzeli,String yzeli,String hzeli) 
               {
                  ContentValues editCon = new ContentValues();
                  editCon.put("name", name);
                  editCon.put("xzeli", xzeli);
                  editCon.put("yzeli", yzeli);
                  editCon.put("hzeli", hzeli);
 
                  open();
                  database.update("koord_knp", editCon, "_id=" + id, null);
                  close();
               }
 
              
               public Cursor getAllContacts() 
               {
                  return database.query("koord_knp", new String[] {"_id", "name"}, 
                     null, null, null, null, "name");
               }
 
               public Cursor getOneContact(long id) 
               {
                  return database.query("koord_knp", null, "_id=" + id, null, null, null, null, null);
               }
               
               public void deleteContact(long id) 
               {
                  open(); 
                  database.delete("koord_knp", "_id=" + id, null);
                  close();
               }
}
А вот где я хочу сделать поиск
************************


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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
 
import database.DatabaseConnector;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CursorAdapter;
import android.widget.EditText;
import android.widget.FilterQueryProvider;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
 
public class Vse_dannue extends Activity {
    
    public static final String ROW_ID = "row_id";
     private ListView lvMain;//===== Список с наименованиями данных
     private CursorAdapter conAdapter;
     EditText inputSearch;
    // ArrayList for Listview
        ArrayList<HashMap<String, String>> productList;
        ArrayAdapter<String> adapter;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.vse_dannue_form);
        
        inputSearch = (EditText) findViewById(R.id.inputSearch);
        //===== Вывод в ListView =====
        lvMain = (ListView) findViewById(R.id.lvMain);
        lvMain.setOnItemClickListener(viewConListener);
        
       String[] from = new String[] { "name"};
       int[] to = new int[] { R.id.textView_name_costom };
       conAdapter = new SimpleCursorAdapter(this, R.layout.list, null, from, to);
        
        lvMain.setAdapter(conAdapter);
        
        final DatabaseConnector dbConnector = null; //объявите глобально в Activity, а не в GetContacts
        
        conAdapter.setFilterQueryProvider(new FilterQueryProvider() {
         
          public Cursor runQuery(CharSequence constraint) {
            Cursor cursor = dbConnector.getAllContacts(); //получение фильтрованных данных
            return cursor;
          }
         
        });
       
        //***************
        inputSearch.addTextChangedListener(new TextWatcher() {
            
            public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
                // When user changed the Text
                Vse_dannue.this.adapter.getFilter().filter(cs);   
            }
             
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                    int arg3) {
                // TODO Auto-generated method stub
                 
            }
             
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub                          
            }
        });
        
        //****************
        
     
    }
    
    OnItemClickListener viewConListener = new OnItemClickListener() 
    {
       public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) 
       {         
          Intent viewCon = new Intent(Vse_dannue.this, Pokaz_dan.class);
          viewCon.putExtra(ROW_ID, arg3);
          startActivity(viewCon);
       }
    };
    
    protected void onResume() 
    {
       super.onResume();  
       new GetContacts().execute((Object[]) null);
     } 
    
    protected void onStop() 
    {
       Cursor cursor = conAdapter.getCursor();
       
       if (cursor != null) 
          cursor.deactivate();
       
       conAdapter.changeCursor(null);
       super.onStop();
    }   
    
    private class GetContacts extends AsyncTask<Object, Object, Cursor> 
    {
       DatabaseConnector dbConnector = new DatabaseConnector(Vse_dannue.this);
 
       @Override
       protected Cursor doInBackground(Object... params)
       {
          dbConnector.open();
          return dbConnector.getAllContacts(); 
       } 
       
       @Override
       protected void onPostExecute(Cursor result)
       {
          conAdapter.changeCursor(result); // устанавливает курсор адаптера
          dbConnector.close();
       } 
         
    }
    
    
    
    
}
Добавлено через 43 минуты
Ну подскажите куча таких вопросов в интернете и не один не закрыт, подскажите кто знает

Добавлено через 4 минуты
Цитата Сообщение от Wenceslaus Посмотреть сообщение
У вас есть метод dbConnector.getAllContacts(), который возвращает данные с таблицы. В методе есть запрос на выборку этих данных. Так вот, он должен быть аналогичен managedQuery(uri, projection, selection, selectionArgs, sortOrder), но с дополнительным условием выборки (фильтром), где:
uri - ссылка на базу данных.
projection - список столбцов для выборки.
selection - условие выборки (фильтр).
selectionArgs - значения для условия (усли не указаны в selection)
sortOrder - сортировка.
Что конкретно туда писать, что бы вставить и заработало, я не скажу, ибо не телепат.

Если возникают сложности с кодом, то сделайте следующим образом:
Java
1
2
3
4
5
6
7
8
9
10
DatabaseConnector dbConnector; //объявите глобально в Activity, а не в GetContacts
 
conAdapter.setFilterQueryProvider(new FilterQueryProvider() {
 
  public Cursor runQuery(CharSequence constraint) {
    Cursor cursor = dbConnector.getFilteredContacts(constraint); //получение фильтрованных данных
    return cursor;
  }
 
});
А в классе DatabaseConnector создайте метод getFilteredContacts(String filter), аналогичный getAllContacts(), но с дополнительным условием выборки, например "name LIKE '%filter%'".
Подскажите пожалуйста, ну не вьезжаю я
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru