0
在我试图做的应用程序中,我想要实现搜索,这将调用休息api。由活动执行的工具栏中的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>
但由于某些原因(我肯定当我点击并在“搜索框”中写入某些内容时,方法不会被触发。
我失踪了什么?我发现的所有例子都与我很久以前发布的帖子类似。
我猜你必须告诉SearchView什么是听I.e. 'setOnQueryTextListener(this)' –
不确定,但是您是否尝试过在searchView上调用'setOnQueryTextListener'并将匿名内部类用于'SearchView.OnQueryTextListener()'而不是在活动中实现,这对我很有用。 – user3820753