좋은 프로그램은 마음의 여유에서 나온다.

액션바의 searchview 검색 후 닫기 본문

프로그래밍/안드로이드

액션바의 searchview 검색 후 닫기

좋은데이 2013. 1. 4. 09:21

액션바의 서치뷰에서 검색어를 입력 후 소프트 키보드의 돋보기를 누르고 검색후에도 다시 돋보기 모양으로 바뀌지 않고 그 내용이 그대로 남아 있다.

플레이스토어에서는 검색을 하면 다시 돋보기 모양으로 바뀐다...


이 상태로 돌아가고 싶은데


이 상태로 남아있는다.



구글링한 결과 .. MenuItem 클래스의 collapseActionView() 메소드를 이용하면 된다.

액션바는 액션바셜록 사용


멤버변수 MenuItem mSearchItem 선언


@Override

public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {

// TODO Auto-generated method stub

        //Used to put dark icons on light action bar

        //boolean isLight = SampleList.THEME == R.style.Theme_Sherlock_Light;


        //Create the search view

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        mSearchView = new SearchView(getSupportActionBar().getThemedContext());

        mSearchView.setQueryHint("버스 번호 또는 정류장명");

        mSearchView.setOnQueryTextListener(queryTextListener);      


        menu.add("Search")

            .setIcon(true ? R.drawable.ic_search_inverse : R.drawable.abs__ic_search)

            .setActionView(mSearchView)

            .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);


        menu.add("Back")

        .setIcon(true ? R.drawable.ic_refresh_inverse : R.drawable.ic_refresh)

            .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

        

        mSearchItem = menu.getItem(0);

        return true;

}


private OnQueryTextListener queryTextListener = new OnQueryTextListener() {


@Override

public boolean onQueryTextSubmit(String query) {

// TODO Auto-generated method stub

mSearchItem.collapseActionView();

return false;

}


@Override

public boolean onQueryTextChange(String newText) {

// TODO Auto-generated method stub

return false;

}

    

    };

Comments