마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Menu 를이용해서 SearchView 사용하는데 뭔가 특별한방법이있나요?

0 추천

Menu 를이용해서 SearchView 사용하는데 뭔가 특별한방법이있나요?

포털에 검색해봐도 비슷한 증상이있는것도 보이는데

해결이 안됩니다

디프레케이트 되었는지....

아래코드에서 잘못된부분이있는지 한번살펴봐주시면 감사하겠습니다

onQueryTextSubmit 이 끝난후 앱이 죽습니다

디버깅하면 SearchView 클래스로 들어가서 죽습니다

SearchView 에 문제가있는것같은데 조언부탁합니다

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);

    cSearchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
    //입력한 글자가 없을 때 사용자에게 보여줄 힌트 설정
    cSearchView.setQueryHint("search...");
    //SearchView 에 focus 가 on or off 일 경우 호출
    cSearchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View a_view, boolean a_hasFocus) {
        }
    });
    //SearchView 에 text 를 검색하거나 변경되는 경우 호출
    cSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener(){
        @Override
        public boolean onQueryTextSubmit(String s) {
            cSearchView.clearFocus();
            // to do
            if(!s.startsWith("http://"))
                s = "http://" + s;
            cWebView.loadUrl(s);
            return false;
        }
        @Override
        public boolean onQueryTextChange(String s) {
            return false;
        }
    });
    return true;
}

 

 

 

잡부 (5,060 포인트) 님이 2020년 4월 17일 질문

2개의 답변

+1 추천
 
채택된 답변

혹시나 해서 그러는데, API 문서를 먼저 확인하시길...

https://developer.android.com/reference/android/widget/SearchView.OnQueryTextListener

public abstract boolean onQueryTextSubmit (String query)
true if the query has been handled by the listener, false to let the SearchView perform the default action.

 OnQuerytextListner의 메소드들은 boolean을 return하게 되는데, 본인이 직접 처리를 할거면 true,
시스템의 기본 액션에 맡길거면 false를  리턴하도록 되어있습니다. 님의 경우 false를 리턴하고 계신데, 
이 부분을 한번 체크해 보세요.

 

익명사용자 님이 2020년 4월 21일 답변
잡부님이 2020년 4월 21일 채택됨
+1 추천
예외처리 섹션으로 묶어서 에러 로그 찍어보세요
융슈비 (1,280 포인트) 님이 2020년 4월 17일 답변
...