SearchView
및 작업 모음은 Android 3.0 및
확인할 수 있습니다 이전 플랫폼을 지원하려면 검색 대화상자로 돌아가세요. 검색 대화상자는
시스템은 호출될 때 애플리케이션 위에 오버레이되는 UI를 제공합니다.
최소 및 대상 API 수준 설정
검색 대화상자를 설정하려면 먼저 매니페스트에서 이전 버전을 지원하고자 한다고 선언합니다. Android 3.0 이상 버전을 타겟팅하려고 합니다. 이렇게 하면 애플리케이션은 는 Android 3.0 이상에서 자동으로 작업 모음을 사용하고 기본 메뉴 시스템을 사용합니다. 구형 기기:
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15" /> <application> ...
이전 기기를 위한 검색 대화상자 제공
이전 기기에서 검색 대화상자를 호출하려면 사용자가 검색을 선택할 때마다 onSearchRequested()
를 호출합니다.
메뉴 항목을 선택합니다. Android 3.0 이상 기기에서는
작업 모음의 SearchView
(첫 번째 과정에서 설명), 버전만
onOptionsItemSelected()
사용자가 검색 메뉴 항목을 선택합니다.
Kotlin
override fun onOptionsItemSelected(item: MenuItem): Boolean { return when (item.itemId) { R.id.search -> { onSearchRequested() true } else -> false } }
자바
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.search: onSearchRequested(); return true; default: return false; } }
런타임에 Android 빌드 버전 확인
런타임에 기기 버전을 확인하여 이전 기기에서 지원되지 않는 SearchView
를 사용하는 일이 발생하지 않도록 하세요. 예시 코드에서는
onCreateOptionsMenu()
메서드:
Kotlin
override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.options_menu, menu) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager (menu.findItem(R.id.search).actionView as SearchView).apply { setSearchableInfo(searchManager.getSearchableInfo(componentName)) setIconifiedByDefault(false) } } return true }
Java
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.options_menu, menu); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView(); searchView.setSearchableInfo( searchManager.getSearchableInfo(getComponentName())); searchView.setIconifiedByDefault(false); } return true; }