Предложение SearchView не работает с одним символом

У меня проблема с моим предложением SearchView , когда я пишу один символ в SearchView предложение не приходит. Но когда я пишу два символа в EditText моего SearchView предложение появится.

Поэтому я хочу, чтобы мое предложение уже появилось, когда я пишу один символ в EditText моего SearchView , что я могу сделать?

Мой код из MainActivity:

 private SearchView mSearchView; private SimpleCursorAdapter mAdapter; private ArrayList<String> mList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mList = new ArrayList<String>(); mList.add("Test 1"); mList.add("Test 2"); mList.add("Test 3"); mList.add("Test 4"); mList.add("Test 5"); mList.add("Test 6"); mList.add("Test 7"); mList.add("Test 8"); mList.add("Test 9"); mList.add("Test 10"); ListView listView = (ListView) findViewById(android.R.id.list); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mList); listView.setAdapter(adapter); mAdapter = new SimpleCursorAdapter(getBaseContext(), R.layout.suggestion, null, new String[] {""}, new int[] {R.id.suggestion_textView}, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); MenuItem searchItem = menu.findItem(R.id.menu_search); mSearchView = (SearchView) searchItem.getActionView(); mSearchView.setSuggestionsAdapter(mAdapter); // onItemClick mSearchView.setOnSuggestionListener(new SearchView.OnSuggestionListener() { @Override public boolean onSuggestionSelect(int position) { return false; } @Override public boolean onSuggestionClick(int position) { // Only for Test finish(); return false; } }); mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String s) { return false; } @Override public boolean onQueryTextChange(String s) { final MatrixCursor c = new MatrixCursor(new String[] { BaseColumns._ID, "" }); for (int i=0; i < mList.size(); i++) { c.addRow(new Object[] {i, mList.get(i)}); } mAdapter.changeCursor(c); return false; } }); return true; } 

Я нашел решение самостоятельно. Это не чисто, но это сработает. У меня есть отладка в SearchView а затем я нашел идентификатор AutoCompleteTextView из SearchView . Чем я устанавливаю порог для AutoCompleteTextView от 2 до 1. Теперь он работает.

 @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); MenuItem searchItem = menu.findItem(R.id.menu_search); mSearchView = (SearchView) searchItem.getActionView(); // Solution int autoCompleteTextViewID = getResources().getIdentifier("android:id/search_src_text", null, null); AutoCompleteTextView searchAutoCompleteTextView = (AutoCompleteTextView) mSearchView.findViewById(autoCompleteTextViewID); searchAutoCompleteTextView.setThreshold(1); /////////// mSearchView.setSuggestionsAdapter(mAdapter); // onItemClick mSearchView.setOnSuggestionListener(new SearchView.OnSuggestionListener() { @Override public boolean onSuggestionSelect(int position) { return false; } @Override public boolean onSuggestionClick(int position) { // Only for Test finish(); return false; } }); mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String s) { return false; } @Override public boolean onQueryTextChange(String s) { final MatrixCursor c = new MatrixCursor(new String[] { BaseColumns._ID, "" }); for (int i=0; i < mList.size(); i++) { if (mList.get(i).toLowerCase().startsWith(s.toLowerCase())) { c.addRow(new Object[]{i, mList.get(i)}); } } mAdapter.changeCursor(c); return false; } }); return true; } 
Intereting Posts
Можем ли мы отображать инструмент выбора стиля старого стиля (Pre Lollipop Time Picker) в ледяных устройствах Android 2.1 NullPointerException с TabWidgets Ошибка совпадения текстаInputLayout Activity.finish (), но активность остается загруженной в память Android: использование Color Array в XML Android – добавление и отображение элементов в ListView по одному с помощью ArrayAdapter Панель действий Android: изменение цвета кнопок действий Уведомление Xamarin Forms ToolBarItem (число над значком) Как центрировать камеру так, чтобы маркер находился в нижней части экрана? (Google map api V2 Android) Скрипты значков на панели инструментов после изменения на Android SDK 26 Диалог пользовательской поддержки. Фрагмент текста – неправильный цвет. Android Studio не распознает Nexus 7 как устройство Понимание удаления и удаления отношений в greenDao Где я могу получить JAR для импорта libcore.io? Длительность определения события Android Touch