Intereting Posts
TYPE_ROTATION_VECTOR, TYPE_ORIENTATION дают разные результаты, которые тоже с отклонениями GetSupportActionBar () Метод getSupportActionBar () не определен для типа TaskActivity. Зачем? Как изменить цвет коммутатора Ошибка android.content.res.Resources $ NotFoundException: Файл из ресурса макета типа xml ID # 0x102000a Где вызов API для выполнения «режима отключения света» в сотах? Ошибка поддержки библиотеки Android после обновления до 23.3.0 ANDROID: Как получить root-доступ в приложении для Android? Как получить доступ к контексту рендеринга OpenGL на Android с помощью Delphi XE5? Погрузчик поставляет результат в неправильный фрагмент Для протокола Parcelable требуется объект Parcelable.Creator, называемый CREATOR (у меня есть CREATOR) Прокрутка для просмотра была предпринята, но представление не отображается. Android, как сделать EditText редактируемым внутри ListView Данные заселяются из определенной таблицы, а не всей таблицы в sqlite Можно ли удалить фрагмент, определенный в файле layout.xml? Как сделать вид андроида прокручиваемым при появлении клавиатуры?

Реализация игры Google и карт, таких как Search Bar android

У меня есть требование создать игру Google и отобразить как панель поиска с фильтром в моем проекте, но я понятия не имею, с чего начать. Я попробовал это с помощью собственной пользовательской реализации, как показано ниже:

Autocomplete TextView внутри ToolBar android

MainActivity.java

toolbar = (Toolbar) findViewById(R.id.tool_bar); setSupportActionBar (toolbar); ArrayList<String> searchArrayList = new ArrayList<String>(); searchArrayList.add("United States"); searchArrayList.add("France"); searchArrayList.add("United Kingdom"); searchArrayList.add("India"); searchArrayList.add("Indonesia"); searchArrayList.add("Germany"); searchArrayList.add("Spain"); AutoCompleteAdapter adapter = new AutoCompleteAdapter(this, R.layout.list_item, R.id.textView1, searchArrayList); AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.searchAutoComplete); autoCompleteTextView.setDropDownWidth(getResources().getDisplayMetrics().widthPixels); autoCompleteTextView.setAdapter(adapter); 

Пользовательская реализация класса AutoCompleteAdapter с использованием ArrayAdapter

AutoCompleteAdapter.java

 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, ArrayList<String> fullList) { super(context, resource, textViewResourceId, fullList); this.fullList = fullList; 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(); } } } 

Я знаю, что выше реализация не подходит для этого. Но мне нужно знать, есть ли другой способ или библиотека, чтобы выполнить это. Я также вижу, что в последние дни многие приложения используют аналогичную панель поиска, любезно, пожалуйста, помогите мне с решениями, поскольку нет, где я могу видеть точные решения для этих требований.

В большинстве блогов и веб-сайтов есть только такие решения, как .

Извините, сказав это также, что большинство сообщений StackOverflow также остаются без ответа для похожих вопросов следующим образом:

Реализовать панель поиска, например, в приложении игрового магазина

Как создать панель поиска выглядит как google play

Все ваши решения и предложения приветствуются. Пожалуйста, простите меня, если мой пост не ясен и кажется неуместным. Ожидание ваших ответов. заранее спасибо

Solutions Collecting From Web of "Реализация игры Google и карт, таких как Search Bar android"