Reputation: 2461
I am trying to implement a SearchView
in OptionsMenu
of a Fragment
. The onQueryTextChange
and onQueryTextSubmit
is not working. I am not sure where am I going wrong.
The menu file:
<?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/profile"
android:orderInCategory="10"
android:title="Profile"
app:showAsAction="never">
</item>
<item
android:id="@+id/settings"
android:orderInCategory="11"
android:title="Settings"
app:showAsAction="never">
</item>
<item
android:id="@+id/action_search"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView"
android:title="Search"/>
</menu>
The part in fragment where I am trying to access the text from SearchView:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.browse_story_fragment, menu);
MenuItem myActionMenuItem = menu.findItem(R.id.action_search);
searchView = (SearchView) myActionMenuItem.getActionView();
SearchView.OnQueryTextListener listener = new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String query) {
query = query.toLowerCase();
Log.e("queryText",query);
return false;
}
public boolean onQueryTextSubmit(String query) {
Log.e("queryTextSubmit", query);
return false;
}
};
super.onCreateOptionsMenu(menu, inflater);
}
I do not see anything in the Logs. Where am I going wrong?
Upvotes: 0
Views: 6525
Reputation: 2461
My big mistake! What I was thinking!
Here is the code:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.browse_story_fragment, menu);
MenuItem myActionMenuItem = menu.findItem(R.id.action_search);
searchView = (SearchView) myActionMenuItem.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
// collapse the view ?
//menu.findItem(R.id.menu_search).collapseActionView();
Log.e("queryText",query);
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
// search goes here !!
// listAdapter.getFilter().filter(query);
Log.e("queryText",newText);
return false;
}
});
super.onCreateOptionsMenu(menu, inflater);
}
Upvotes: 5