मैंने अभी v7 AppCompat
समर्थन पुस्तकालय लागू किया है लेकिन MenuItemCompat.getActionView
मेरे द्वारा परीक्षण किए गए प्रत्येक Android संस्करण में हमेशा वापसी नल (4.2.2, 2.3.4 ....)
SearchView
कार्रवाई पट्टी में प्रदर्शित किया जाता है, लेकिन यह कार्रवाई को छूने के लिए जवाब नहीं है और दिखाने के लिए विस्तृत नहीं है अपने EditText
और सिर्फ एक सरल आइकन की तरह है।
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
if (searchView != null) {
SearchViewCompat.setOnQueryTextListener(searchView, mOnQueryTextListener);
searchView.setIconifiedByDefault(false);
Log.d(TAG,"SearchView not null");
} else
Log.d(TAG, "SearchView is null");
}
return super.onCreateOptionsMenu(menu);
}
Menu.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"
app:showAsAction="always|collapseActionView"
android:icon="@drawable/abc_ic_search"
android:title="@string/action_bar_search"
android:actionViewClass="android.support.v7.widget.SearchView"/>
<item android:id="@+id/action_refresh"
android:icon="@drawable/refresh"
android:title="@string/action_bar_refresh"
app:showAsAction="ifRoom"/>
</menu>