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

Autocompletetextview и сквозной поиск - Android

Восстановить пароль Регистрация
 
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
16.11.2015, 19:56     Autocompletetextview и сквозной поиск #1
Как реализовать ?
Мурка, Муж, Мука и т.д. понятно что по первым символам ищется все гуд, но этот функционал прошлый век.
Нужно что бы при вводе "ур" выпадало "Мурка", а не только по первым символам.
Только не говорите что нужно для этого БД поднимать и через like %% использовать или вообще адаптер свой писать.
Я вообще тогда в возможностях andoid(java) разочаруюсь.
И еще бы, если список выпадает вниз и мы находимся в самом низу актива, список автоматом поднялся вверх(ну что бы никуда ничего за рамки не выходило и ближайший список был виден) или это тоже не входит с стандартное использование ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2015, 19:56     Autocompletetextview и сквозной поиск
Посмотрите здесь:

Android Как узнать что выбрал пользователь в AutoCompleteTextView
Не корректно работает AutoCompleteTextView Android
Android AutoCompleteTextView
Автозаполнение AutoCompleteTextView. Что такое groceryDb? Android
Android AutocompleteTextView не закрывался диалог на кнопку "back"
Android Как подгрузить данные в AutoCompleteTextView?
Android AutoCompleteTextView + база sqlite
Android AutoCompleteTextView убрать фокус
Android Ограничить число подсказок AutoCompleteTextView
Android Не работает AutoCompleteTextView для ArrayList собственного класса

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
не спать!
1881 / 1615 / 500
Регистрация: 12.05.2014
Сообщений: 5,831
Завершенные тесты: 1
16.11.2015, 20:08     Autocompletetextview и сквозной поиск #2
Цитата Сообщение от gradus Посмотреть сообщение
или вообще адаптер свой писать
Цитата Сообщение от gradus Посмотреть сообщение
или это тоже не входит с стандартное использование ?
Да.
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
16.11.2015, 20:31  [ТС]     Autocompletetextview и сквозной поиск #3
facepalm, просто facepalm...
Mikalai
248 / 224 / 91
Регистрация: 11.01.2015
Сообщений: 643
16.11.2015, 22:19     Autocompletetextview и сквозной поиск #4
gradus, ну так можно же и готовую реализацию поискать. Например тут
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
16.11.2015, 22:36  [ТС]     Autocompletetextview и сквозной поиск #5
Mikalai, да я то уже нашел.
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
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Filter;
import android.widget.Filterable;
 
import java.util.ArrayList;
import java.util.List;
 
public class AutoCompleteAdapter extends ArrayAdapter<String> implements Filterable {
 
    private ArrayList<String> fullList;
    private ArrayList<String> mOriginalValues;
    private ArrayFilter mFilter;
 
    public AutoCompleteAdapter(Context context, int resource, int textViewResourceId, List<String> objects) {
 
        super(context, resource, textViewResourceId, objects);
        fullList = (ArrayList<String>) objects;
        mOriginalValues = new ArrayList<String>(fullList);
 
    }
 
    @Override
    public int getCount() {
        return fullList.size();
    }
 
    @Override
    public String getItem(int position) {
        return fullList.get(position);
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        return super.getView(position, convertView, parent);
    }
 
    @Override
    public Filter getFilter() {
        if (mFilter == null) {
            mFilter = new ArrayFilter();
        }
        return mFilter;
    }
 
 
    private class ArrayFilter extends Filter {
        private Object lock;
 
        @Override
        protected FilterResults performFiltering(CharSequence prefix) {
            FilterResults results = new FilterResults();
 
            if (mOriginalValues == null) {
                synchronized (lock) {
                    mOriginalValues = new ArrayList<String>(fullList);
                }
            }
 
            if (prefix == null || prefix.length() == 0) {
                synchronized (lock) {
                    ArrayList<String> list = new ArrayList<String>(mOriginalValues);
                    results.values = list;
                    results.count = list.size();
                }
            } else {
                final String prefixString = prefix.toString().toLowerCase();
 
                ArrayList<String> values = mOriginalValues;
                int count = values.size();
 
                ArrayList<String> newValues = new ArrayList<String>(count);
 
                for (int i = 0; i < count; i++) {
                    String item = values.get(i);
                    if (item.toLowerCase().contains(prefixString)) {
                        newValues.add(item);
                    }
 
                }
 
                results.values = newValues;
                results.count = newValues.size();
            }
 
            return results;
        }
 
        @SuppressWarnings("unchecked")
        @Override
        protected void publishResults(CharSequence constraint, FilterResults results) {
 
            if(results.values!=null){
                fullList = (ArrayList<String>) results.values;
            }else{
                fullList = new ArrayList<String>();
            }
            if (results.count > 0) {
                notifyDataSetChanged();
            } else {
                notifyDataSetInvalidated();
            }
        }
    }
}
Yandex
Объявления
16.11.2015, 22:36     Autocompletetextview и сквозной поиск
Ответ Создать тему
Опции темы

Текущее время: 00:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru