woong's

Android SearchView 사용하기 본문

Develop/Android

Android SearchView 사용하기

dlsdnd345 2016. 2. 14. 18:33
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Android SearchView 사용하기


안녕하세요. 이번 toolbar  를 사용하게 되면서 검색기능을 searchView 로 이용해 보았습니다 .

간단한 코드로 이쁜 search뷰가 구성이 되어서 포스팅 해보려 합니다 .




1. menu Item 추가 


1
2
3
4
5
6
7
8
9
10
11
12
13
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">
 
    <item
        android:id="@+id/action_search"
        android:icon="@android:drawable/ic_menu_search"
        app:showAsAction="always"
        app:actionViewClass="android.support.v7.widget.SearchView"
        android:title="Search"/>
</menu>
 
cs


xml 에 메뉴 속성을 SearchView 를 사용하면 화면에 구성 할 수 있습니다 .


2. ment 추가 


1
2
3
4
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
}
cs


여기 까지 하시면 화면에 서치뷰가 나타나고 동작하시는것을 볼수 있습니다 .

이제 검색어를 통하여 검색을 할수 있도록 구성해 보겠습니다.


4. manifast.xml 추가


1
2
3
4
5
6
7
8
9
10
11
12
<activity
            android:name=".MainActivity"
            android:theme="@style/MainAppTheme">
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
            </intent-filter>
 
            <meta-data
                android:name="android.app.searchable"
                android:resource="@xml/searchable" />
 
        </activity>
cs



3. 리스너 추가


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
 
        MenuItem searchItem = menu.findItem(R.id.action_search);
        searchView = (SearchView) searchItem.getActionView();
        searchView.setQueryHint(getString(R.string.edittext_search_video));
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener(){
 
            @Override
            public boolean onQueryTextSubmit(String s) {
                return false;
            }
 
            @Override
            public boolean onQueryTextChange(String s) {
                return false;
            }
        });
cs

 


​위 코드를 구성 하시면 


검색어 입력시 : onQueryTextChange

검색어 완료시 : onQueryTextSubmit


리서너가 동작 합니다. 위 리스너를 통해서 검색 기능을 구현 하시면 될것 같습니다.


Comments