Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
4 / 4 / 0
Регистрация: 22.07.2013
Сообщений: 30

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

28.07.2013, 23:29. Показов 2575. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос таков имею базу данных с данными вывод имён в костомный ListView но поиска не выполняется. Брал пример всё работает в моём случае нет. Подскажите пожалуйста
Вот код из примера
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
package com.androidhive.androidlistviewwithsearch;
 
import java.util.ArrayList;
import java.util.HashMap;
 
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
 
public class MainActivity extends Activity {
     
    // List view
    private ListView lv;
     
    // Listview Adapter
    ArrayAdapter<String> adapter;
     
    // Search EditText
    EditText inputSearch;
     
     
    // ArrayList for Listview
    ArrayList<HashMap<String, String>> productList;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         
        // Listview Data
        String products[] = {"Dell Inspiron", "HTC One X", "HTC Wildfire S", "HTC Sense", "HTC Sensation XE",
                                "iPhone 4S", "Samsung Galaxy Note 800",
                                "Samsung Galaxy S3", "MacBook Air", "Mac Mini", "MacBook Pro"};
         
        lv = (ListView) findViewById(R.id.list_view);
        inputSearch = (EditText) findViewById(R.id.inputSearch);
         
        // Adding items to listview
        adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.product_name, products);
        lv.setAdapter(adapter);
         
        /**
         * Enabling Search Filter
         * */
        inputSearch.addTextChangedListener(new TextWatcher() {
             
            @Override
            public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
                // When user changed the Text
                MainActivity.this.adapter.getFilter().filter(cs);   
            }
             
            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                    int arg3) {
                // TODO Auto-generated method stub
                 
            }
             
            @Override
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub                          
            }
        });
    }    
}
А вот мой с учётов вывода имен в базе данных и оброботчиком нажатия на ListView

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
package sherstyuk.ya.n.bd_str;
 
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.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;
 
    @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);
        
        inputSearch.addTextChangedListener(new TextWatcher() {
            
            @Override
            public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
                // When user changed the Text
                Vse_dannue.this.conAdapter.getFilter().filter(cs);   
            }
             
            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                    int arg3) {
                // TODO Auto-generated method stub
                 
            }
             
            @Override
            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();
       } 
         
    }
    
    
    
    
}
Добавлено через 50 минут
Подскажите пожалуйста, все варианты перепробывал ничего не помогает

Добавлено через 44 минуты
Я так понял что проблема в SimpleCursorAdapter, необходимо как то масив с данными по другому отображать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.07.2013, 23:29
Ответы с готовыми решениями:

Не выполняется поиск по Grid
Ребят, не выполняется поиск по Grid. Есть скрин кода на кнопке ПОИСК. В чем ошибка. ЗАпрос SQL есть

Не выполняется поиск Google
Добрый день всем форумчанам! Сегодня произошла странная история. С утра интернет стал работать медленно, потом еще медленнее, потом стал...

Создание просто словаря, не выполняется поиск
Пример взят из книги, но работать он не хочет. Проверял цикл for, выдает значение 012.(Не совсем понятно от куда что, ладно 2 цифры но их...

8
Android Developer
 Аватар для Wenceslaus
131 / 131 / 6
Регистрация: 05.07.2013
Сообщений: 205
29.07.2013, 15:00
Вам нужно дополнительно использовать setFilterQueryProvider для Adapter'а, так как в данном случае проходит фильтрация данных из БД, а не массива элементов (как в случае с ArrayAdapter).
Java
1
2
3
4
5
6
7
8
9
10
conAdapter.setFilterQueryProvider(new FilterQueryProvider() {
 
  public Cursor runQuery(CharSequence constraint) {
    //uri, projection, и sortOrder аналогичные предыдущему запросу
    //selection и selectionArgs зависят от constraint и выполняют роль фильтра
    Cursor cursor = managedQuery(uri, projection, selection, selectionArgs, sortOrder);
    return cursor;
  }
 
});
0
4 / 4 / 0
Регистрация: 22.07.2013
Сообщений: 30
29.07.2013, 15:33  [ТС]
Куда мне это вставить чтоб заработало???
0
Android Developer
 Аватар для Wenceslaus
131 / 131 / 6
Регистрация: 05.07.2013
Сообщений: 205
29.07.2013, 16:37
В onCreate, после создания conAdapter'а, ведь это фактически его настройка.
0
4 / 4 / 0
Регистрация: 22.07.2013
Сообщений: 30
29.07.2013, 18:11  [ТС]
Вот в uri, projection, selection, selectionArgs, sortOrder пишет ошибку что вместо или как туда запихнуть в моём случае
0
Android Developer
 Аватар для Wenceslaus
131 / 131 / 6
Регистрация: 05.07.2013
Сообщений: 205
29.07.2013, 18:58
У вас есть метод 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%'".
0
4 / 4 / 0
Регистрация: 22.07.2013
Сообщений: 30
29.07.2013, 20:07  [ТС]
Ну вот мой 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%'".
Подскажите пожалуйста, ну не вьезжаю я
0
Android Developer
 Аватар для Wenceslaus
131 / 131 / 6
Регистрация: 05.07.2013
Сообщений: 205
30.07.2013, 12:27
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
package com.example.simllist;
 
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 getFilteredContacts(String filter) {
        return database.query("koord_knp", new String[] { "_id", "name" }, "name LIKE ?", new String[] { "%"+filter+"%" }, 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
package com.example.simllist;
 
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;
    DatabaseConnector dbConnector; // глобально для Activity
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.vse_dannue_form);
 
        dbConnector = new DatabaseConnector(this);
 
        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);
 
        conAdapter.setFilterQueryProvider(new FilterQueryProvider() {
 
            public Cursor runQuery(CharSequence constraint) {
                Cursor cursor = dbConnector.getFilteredContacts(constraint.toString()); // получение фильтрованных данных
                return cursor;
            }
 
        });
 
        lvMain.setAdapter(conAdapter);
 
        // ***************
        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);
    }
    
    
 
    @Override
    protected void onStart() {
        super.onStart();
        //открытие базы при старте Activity
        dbConnector.open();
    }
 
    protected void onStop() {
        Cursor cursor = conAdapter.getCursor();
 
        if (cursor != null)
            cursor.deactivate();
 
        conAdapter.changeCursor(null);
        //Закрытие базы при остановке Activity
        dbConnector.close();
        super.onStop();
    }
 
    private class GetContacts extends AsyncTask<Object, Object, Cursor> {
 
        @Override
        protected Cursor doInBackground(Object... params) {
            return dbConnector.getAllContacts();
        }
 
        @Override
        protected void onPostExecute(Cursor result) {
            conAdapter.changeCursor(result); // устанавливает курсор адаптера
        }
 
    }
 
}
0
4 / 4 / 0
Регистрация: 22.07.2013
Сообщений: 30
30.07.2013, 19:24  [ТС]
Ошибка

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
07-30 18:20:33.882: I/ActivityManager(2299): onPause called: sherstyuk.ya.n.bd_str.MainActivity
07-30 18:20:39.512: D/AndroidRuntime(2299): Shutting down VM
07-30 18:20:39.532: W/dalvikvm(2299): threadid=1: thread exiting with uncaught exception (group=0x4001d820)
07-30 18:20:39.592: E/AndroidRuntime(2299): FATAL EXCEPTION: main
07-30 18:20:39.592: E/AndroidRuntime(2299): java.lang.NullPointerException
07-30 18:20:39.592: E/AndroidRuntime(2299):     at sherstyuk.ya.n.bd_str.Vse_dannue$3.onTextChanged(Vse_dannue.java:68)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at android.widget.TextView.sendOnTextChanged(TextView.java:6582)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at android.widget.TextView.handleTextChanged(TextView.java:6623)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:6767)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at android.text.SpannableStringBuilder.sendTextChange(SpannableStringBuilder.java:920)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:383)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:300)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:463)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:440)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:59)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:614)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at android.view.inputmethod.BaseInputConnection.commitText(BaseInputConnection.java:205)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at com.android.internal.widget.EditableInputConnection.commitText(EditableInputConnection.java:151)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:278)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:104)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at android.os.Handler.dispatchMessage(Handler.java:130)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at android.os.Looper.loop(Looper.java:154)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at android.app.ActivityThread.main(ActivityThread.java:4668)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at java.lang.reflect.Method.invokeNative(Native Method)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at java.lang.reflect.Method.invoke(Method.java:552)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:917)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:674)
07-30 18:20:39.592: E/AndroidRuntime(2299):     at dalvik.system.NativeStart.main(Native Method)
07-30 18:20:41.612: I/Process(2299): Sending signal. PID: 2299 SIG: 9
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.07.2013, 19:24
Помогаю со студенческими работами здесь

Поиск в ширину - Неправильно выполняется программа
ПОМОГИТЕ! ПОЧЕМУ НЕПРАВИЛЬНО ВЫПОЛНЯЕТСЯ ПРОГРАММА? #include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;queue&gt; using...

Поиск в ListView
Уважаемые форумчане, доброго времени суток. Нужно реализовать такую вещь: нужно осуществить поиск в ListView. Ввожу искомый текст в Edit и...

Поиск по listview
Добрый день. Ищу в listview таким кодом procedure TForm1.btn23Click(Sender: TObject); var a:Boolean; i, tPos: Integer; ...

Поиск по ListView
Необходимо реализовать поиск по ListView, но не с жестким совпадением слов. Пример: ListView имеет строки: 0. Мои одноклассники 1....

Поиск по listview
Есть listview в котором около 250 позиций. Вывожу все при полощи Custom Adapter. Как осуществить поиск по нему через EditText?


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru