是否可以在OptionMenu上实现搜索栏(使用EditText)并向其添加TextChangedListener? 我的MainActivity有3个可滑动的标签和3个不同的ListView,所以我想在ActionBar上添加一个EditText的TextChangedListener(如果可能的话)是一个更好的选择,而不是创建Searchable Activity。然后,我可以轻松获取当前ListView并使用SearchBar中的文本对其进行过滤,如下例所示。但是,他的EditText不在ActionBar上。 http://www.androidhive.info/2012/09/android-adding-search-functionality-to-listview/
答案 0 :(得分:2)
是的,有可能。只需在您的活动中填写此类菜单:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_settings" app:actionLayout="@layout/action_item_edit_text"
app:showAsAction="always" />
</menu>
action_item_edit_text.xml
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/editInput"
android:layout_width="140dp"
android:layout_height="?attr/actionBarSize"
android:hint="Write something"
android:singleLine="true"
android:background="@android:color/white"
android:textColorHint="#BBBBBB"
android:textColor="@android:color/black"
android:textSize="14sp"
android:padding="6dp"/>
然后,您可以参考onCreateOptionsMenu
中的编辑文字:
EditText editText = (EditText) MenuItemCompat.getActionView(menu.findItem(R.id.action_settings));
editText.addTextChangedListener(new TextWatcher() { \\... });