반응형

출처: https://jootc.com/p/201906042883

 

[안드로이드/JAVA] 외부 버튼 클릭으로 SearchView 검색 처리하기 - JooTC

다른 버튼 클릭 시 SearchView 검색 처리하기 경우에 따라서 키보드상의 제출 버튼이 아닌, 다른 임의의 버튼이나 메뉴를 클릭했을 때 검색을 진행할 수 있도록 처리하고 싶을 때가 있습니다. 이제 MainActivity.java 파일을 편집해보겠습니다.

jootc.com

 

예전에 EditText라는 녀석이 있었는데 어디있는지 못 찾았다.

대신에 각 양식별로 세분화가 되어 있었다.

 

그런데 내가 원하는 것은 저런 것이 아니라 그냥 입력창 하나 만들고 거기서 받은 문자열로 찾는 녀석이 필요했다.

찾다보니 SearchView란 녀석이 새로 있었다.

 

SearchView 사용 방법은 다음과 같다.

 

우선 액티비티에 SearchView를 추가한다. 뭐 액티비티 XML 코드도 복사했지만,

안드로이드 스튜디오를 쓴다면 굳이 필요하진 않을 것이다.

        <SearchView
            android:id="@+id/searchView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="visible" />

 

그리고 SearchView를 생성한다.

public class MyMapActivity extends AppCompatActivity {
  private SearchView mSearchView;
  @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);

          mSearchView = findViewById(R.id.searchView); // SearchView
      }
}    

 

마지막으로 setOnQueryTextListener 인터페이스를 구현하여 원하는 동작을 수행한다.

mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String s) {
            	// 입력받은 문자열 처리
                return true;
            }

            @Override
            public boolean onQueryTextChange(String s) {
            	// 입력란의 문자열이 바뀔 때 처리
                return false;
            }
        });
    }
반응형
Posted by 애콜라이트
l

free counters