2014-12-08 6 views
0

OptionMenu에 검색 막대를 구현하고 TextChangedListener를 추가 할 수 있습니까? 내 MainActivity에는 3 개의 다른 ListView가있는 3 개의 스 와이프 가능한 탭이 있으므로 검색 가능한 활동을 만드는 대신 ActionBar의 EditText에 TextChangedListener를 추가하는 것이 좋습니다 (가능한 경우)가 더 나은 선택입니다. 그런 다음 현재 ListView를 쉽게 가져올 수 있으며 SearchBar의 텍스트를 아래 예제와 같이 필터링 할 수 있습니다. 그러나 그의 EditText는 ActionBar에 없습니다. http://www.androidhive.info/2012/09/android-adding-search-functionality-to-listview/검색 가능한 활동을 사용하지 않고 검색 창 구현

답변

1

예, 가능합니다. 단순히 당신의 활동에 같은 메뉴를 부풀려 :

<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() { \\... }); 
+0

감사합니다! 너 멋지다! –

+0

내가 도와 줘서 다행이다 :) –

관련 문제