2017-01-09 3 views
0

В приложении, которое я пытаюсь сделать, я хочу реализовать поиск, который вызовет rest api.SearchView в панели инструментов, реализованной Activity Activity

Как я спросил давно о том, как сделать SearchView он работает нормально ->How to use SearchView in Toolbar Android

Но теперь я хочу попробовать что-то «другое» (Для того, чтобы узнать немного больше). Но я делаю что-то неправильно.

То, что я пытаюсь сделать, это сделать активность implmement SearchView.OnQueryTextListener, поэтому whay у меня есть:

public class PMov extends AppCompatActivity implements SearchView.OnQueryTextListener {  
    .... 
    @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      getMenuInflater().inflate(R.menu.menu_main, menu); 
    } 

    @Override 
    public boolean onQueryTextSubmit(String query) { 
     Toast.makeText(this, "TextSubmit", Toast.LENGTH_SHORT).show(); 
     Logger.d("onQueryTextSubmit: " + query); 
     return false; 
    } 

    @Override 
    public boolean onQueryTextChange(String newText) { 
     Toast.makeText(this, "TextChange", Toast.LENGTH_SHORT).show(); 
     Logger.d("onQueryTextChange: " + newText); 
     return false; 
    } 
} 

И XML:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item android:id="@+id/action_search" 
     android:title="@string/action_search" 
     app:actionViewClass="android.support.v7.widget.SearchView" 
     app:showAsAction="always" 
     android:icon="@android:drawable/ic_menu_search"/> 
</menu> 

Но по какой-то причине (что я что-то не хватает), методы не срабатывают, когда я нажимаю и «пишу» что-то в SearchBox.

Что мне не хватает? Весь пример, который я нашел, похож на мой пост, который я делал давно.

+1

Я предполагаю, что вы должны сказать SearchView, что слушает I.e. 'setOnQueryTextListener (this)' –

+0

не уверен, но вы пробовали вызывать 'setOnQueryTextListener' на searchView и использовать анонимный внутренний класс для' SearchView.OnQueryTextListener() 'вместо того, чтобы внедрять в действие, что работает для меня. – user3820753

ответ

0

Найти решение ... facepalm для меня!

в @Markkeen pointend, я пропускал рассказать SearchView, кто слушает, он фиксируется как это сделать:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     MenuItem searchItem = menu.findItem(R.id.action_search); 
     SearchView actionSearchView = (SearchView) searchItem.getActionView(); 
     actionSearchView.setOnQueryTextListener(this); 
    } 

И с этим, методы onQueryTextSubmit и onQueryTextChange являются стало началом.

Спасибо!

Смежные вопросы