앱에 검색 기능을 추가할 준비가 되면 Android가 도와드립니다. 상단에 표시되는 검색 대화상자나 검색 위젯으로 표시할 수 있습니다. 검색 대화상자와 위젯은 모두 사용자의 검색어를 확인할 수 있습니다. 이렇게 하면 사용자가 어디에서든 검색을 시작할 수 있습니다. 검색 대화상자나 위젯을 사용할 수 있고 시스템이 시작하는 활동 검색하고 결과를 표시하기 위해 적절한 활동을 해야 합니다.
검색 대화상자 및 위젯에 사용할 수 있는 다른 기능은 다음과 같습니다.
- 음성 검색
- 최근 검색어 기반의 추천 검색어
- 앱 데이터의 실제 결과와 일치하는 추천 검색어
이 문서에서는 검색 인터페이스를 제공하도록 앱을 설정하는 방법을 보여줍니다. Android 시스템의 지원을 받아 검색 대화상자나 검색 위젯입니다.
관련 리소스:
기본 사항
시작하기 전에 검색 인터페이스 구현 여부 결정 검색할 수 있습니다. 동일한 검색 결과를 제공함 약간 다른 방식으로 작동합니다.
- 검색 대화상자는
Android 시스템입니다. 사용자가 활성화하면 검색 대화상자가 표시됩니다.
액티비티의 맨 위에 표시됩니다.
Android 시스템은 검색 대화상자의 모든 이벤트를 제어합니다. 이 사용자가 쿼리를 제출하면 시스템은 쿼리를 전송한 활동에 검색 처리를 지정할 수 있습니다. 또한 이 대화상자에서는 추천 검색어가 표시됩니다.
- 검색 위젯은
가능한
SearchView
배치할 수 있습니다. 기본적으로 검색 위젯은 표준EditText
아무것도 하지 않지만 Android가 시스템이 모든 입력 이벤트를 처리하고 적절한 검색과 마찬가지로 추천 검색어를 제공합니다. 대화상자
사용자가 검색 대화상자 또는 검색 위젯에서 검색을 실행하면
시스템에서
Intent
및
사용자 쿼리를 저장합니다 그러면 시스템이 사용자가 원하는 활동을
검색('검색 가능한 활동')을 처리하도록 선언하고 이를 전송
있습니다. 이러한 유형의 지원 검색이 가능하도록 앱을 설정하려면
있습니다.
- 검색 구성
- 검색 대화상자 또는 위젯의 일부 설정을 구성하는 XML 파일입니다. 여기에는 음성 검색, 추천 검색어, 검색창에 힌트 텍스트를 입력할 수도 있습니다.
- 검색 가능 활동
Activity
검색어를 받아 데이터를 검색하며 검색어를 표시하는 확인할 수 있습니다.- 검색 인터페이스: 다음 중 하나로 제공됩니다.
- 검색 대화상자
- 검색 대화상자는 기본적으로 숨겨져 있습니다. 이 아이콘은 통화 시 화면
onSearchRequested()
사용자가 검색 버튼을 탭할 때.SearchView
위젯- 검색 위젯을 사용하면 내 어디에나 검색창을 배치할 수 있습니다. 활동(앱 바의 작업 뷰 포함)
이 문서의 나머지 부분에서는 검색 구성을 만드는 방법을 설명합니다. 검색 가능 활동과 검색 대화상자 또는 검색 위젯입니다.
검색 가능한 구성 만들기
가장 먼저 필요한 것은
검색 구성을 선택합니다.
검색 대화상자 또는 위젯의 특정 UI 측면을 구성하고
스마트 자동 완성 기능을 사용할 수 있습니다. 이 파일은 일반적으로
이름이 searchable.xml
이고 res/xml/
에 저장되어야 합니다.
프로젝트 디렉터리에 있습니다
검색 구성 파일에는
<searchable>
드림
요소를 루트 노드로 설정하고
다음 예를 참고하세요.
<?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/app_label" android:hint="@string/search_hint" > </searchable>
android:label
속성은 유일한 필수 속성으로서 그것은
문자열 리소스(앱 이름이어야 함)를 가리킵니다. 이 라벨은
다음 페이지에서 빠른 검색창에 추천 검색어를 사용하도록 설정할 때까지 사용자에게 표시됩니다.
시스템의 검색 가능한 항목 목록에 라벨이 표시되는 지점입니다.
설정을 변경할 수 있습니다.
필수는 아니지만 항상
검색에서 힌트 문자열을 제공하는 android:hint
속성
체크박스를 선택합니다. 힌트가 중요한 이유는
사용자가 검색할 수 있는 내용에 관한 중요한 단서가 될 수 있습니다.
<searchable>
요소는 다른 여러 속성을 허용합니다.
하지만 다음과 같은 특성을 추가할 때까지는 대부분의 속성이 필요하지 않습니다.
추천 검색어 및
음성 검색 다음에 대한 자세한 내용은
검색 구성 파일에 대한 자세한 내용은
검색 구성
참조 문서입니다.
검색 가능 활동 만들기
검색 가능 활동은 앱에서 다음을 수행하는 Activity
입니다.
검색 결과를 표시합니다.
사용자가 검색 대화상자 또는 위젯에서 검색을 실행하면 시스템은
사용자가 검색 가능 활동을 시작하고
Intent
ACTION_SEARCH
있습니다. 검색 가능 활동은 인텐트의
QUERY
데이터를 검색하여 결과를 제시합니다.
Google Cloud 콘솔의 다른 활동에 시스템에서 어떤 활동이 검색 가능한 활동인지 알아야 하므로 검색어를 제대로 전달할 수 있습니다. 따라서 먼저 Activity에 포함해야 합니다.
검색 가능 활동 선언
아직 없다면 다음을 실행하는 Activity
를 만듭니다.
결과를 제공합니다. 검색을 구현할 필요가 없습니다.
에 선언할 수 있는 활동을 만들기만 하면 됩니다. 이 활동은
합니다. 매니페스트의
<activity>
드림
요소에서 다음 단계를 따르세요.
ACTION_SEARCH
인텐트를 허용하는 활동을<intent-filter>
요소가 포함됩니다.- 다음에서 사용할 검색 구성 지정
<meta-data>
요소가 포함됩니다.
예를 들면 다음과 같습니다.
<application ... > <activity android:name=".SearchableActivity" > <intent-filter> <action android:name="android.intent.action.SEARCH" /> </intent-filter> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable"/> </activity> ... </application>
<meta-data>
요소는
android:name
속성 값이
"android.app.searchable"
및 android:resource
검색 가능한 구성 파일에 대한 참조로 바꿉니다.
res/xml/searchable.xml
는
파일에서 참조됩니다.
검색 실행
매니페스트에서 검색 가능 활동을 선언한 후 다음 단계에 따라 검색 가능 활동에서 검색을 실행하세요.
쿼리 수신
사용자가 검색 대화상자 또는 위젯에서 검색을 실행하면 시스템은
검색 가능 활동을 시작하고 ACTION_SEARCH
를 전송합니다.
인텐트를 지정할 수 있습니다. 이 인텐트는 QUERY
문자열에 검색어를 전달합니다.
추가. 활동이 시작될 때 이 인텐트를 확인하고 문자열을 추출합니다.
예를 들어, 검색 가능할 때 검색어를 얻는 방법은 다음과 같습니다.
시작:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.search) // Verify the action and get the query. if (Intent.ACTION_SEARCH == intent.action) { intent.getStringExtra(SearchManager.QUERY)?.also { query -> doMySearch(query) } } }
자바
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.search); // Get the intent, verify the action, and get the query. Intent intent = getIntent(); if (Intent.ACTION_SEARCH.equals(intent.getAction())) { String query = intent.getStringExtra(SearchManager.QUERY); doMySearch(query); } }
QUERY
문자열은 항상
ACTION_SEARCH
인텐트에 대한 응답 메시지입니다. 앞의 예에서 쿼리는
가져온 후 로컬 doMySearch()
메서드로 전달되며, 여기서
실제 검색 작업이 수행됩니다.
데이터 검색
데이터를 저장하고 검색하는 프로세스는 앱마다 다릅니다. 다음과 같은 작업을 할 수 있습니다. 데이터를 저장하고 검색하는 방법을 보여주며 이 문서에서는 방법을 보여주지 않습니다. 요구사항 및 데이터의 측면에서 데이터를 저장하고 검색하는 방법을 고려합니다. 형식으로 입력합니다. 다음은 도움이 될 수 있는 팁입니다.
- 데이터가 기기의 SQLite 데이터베이스에 저장되는 경우 다음을 수행합니다.
전체 텍스트 검색(
LIKE
대신 FTS3 사용) 텍스트 데이터에서 보다 강력한 검색 기능을 제공할 수 있고 훨씬 더 빠르게 결과를 얻을 수 있습니다. 자세한 내용은 sqlite.org: FTS3 및 <ph type="x-smartling-placeholder">SQLiteDatabase
</ph> 클래스를 참조하세요. - 데이터가 온라인에 저장되면 인지된 검색 성능이
사용자의 데이터 연결에 의해 방해되지 않아야 합니다. 예를 들어
검색 진행률 표시기가 표시됩니다. 자세한 내용은
android.net
네트워크 API와ProgressBar
를 참조하세요.
결과 발표하기
데이터의 위치 및 검색 방법에 관계없이
검색 결과에 대한 검색 결과를
Adapter
이
모든 검색결과를 하나의 형식으로
RecyclerView
데이터의 출처가 SQLite 데이터베이스 쿼리인 경우
다음을 사용하여 RecyclerView
CursorAdapter
데이터가 다른 형식으로 제공되는 경우
BaseAdapter
Adapter
는 데이터 세트의 각 항목을
View
객체. 날짜
Adapter
는 각 조각에 적용되는 RecyclerView
에 적용됩니다.
목록에 개별 보기로 삽입됩니다. Adapter
:
인터페이스일 뿐이므로
CursorAdapter
:
Cursor
—다음과 같음
할 수 있습니다 기존 구현이 데이터에 적합하지 않은 경우
BaseAdapter
에서 직접 구현하세요.
검색 대화상자 사용
검색 대화상자는 화면 상단에 플로팅 검색창을 제공합니다. 앱 아이콘을 클릭합니다 검색 대화상자에서 추천 검색어를 제시할 수 있습니다. 자동으로 생성됩니다. 사용자가 검색을 실행하면 시스템에서 검색어를 전송합니다. 검색할 수 있습니다.
기본적으로 검색 대화상자는 사용자가 활성화할 때까지 항상 숨겨져 있습니다.
앱에서 다음을 호출하여 검색 대화상자를 활성화할 수 있습니다.
onSearchRequested()
하지만 이 방법은
액티비티의 검색 대화상자를 활성화합니다.
검색 대화상자가 검색을 수행할 수 있게 하려면 시스템에
검색 가능 활동은 검색 대화상자의 검색어를 수신해야 합니다. 대상
예를 들어 이전 섹션에서
검색 가능 활동 만들기, 즉 검색 가능한 활동 만들기
SearchableActivity
라는 활동이 생성됩니다. 당신이 원하는 경우
OtherActivity
라는 이름과 같은 별도의 활동을 통해
검색 대화상자를 생성하고 SearchableActivity
에 검색 결과를 전달하고
SearchableActivity
가 검색 가능 활동임
OtherActivity
의 검색 대화상자에 사용합니다.
활동의 검색 대화상자에 대해 검색 가능 활동을 선언하려면
각 활동의 내부에 있는 <meta-data>
요소
<activity>
요소 <meta-data>
요소는 반드시 android:value
속성을 포함해야
검색 가능 활동의 클래스 이름 및 android:name
속성
값을 "android.app.default_searchable"
로 바꿉니다.
예를 들어 다음은 검색 가능 활동과
SearchableActivity
외 활동
OtherActivity
: SearchableActivity
를 사용하여 다음을 수행합니다.
검색 대화상자에서 실행된 검색을 수행합니다.
<application ... > <!-- This is the searchable activity; it performs searches. --> <activity android:name=".SearchableActivity" > <intent-filter> <action android:name="android.intent.action.SEARCH" /> </intent-filter> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable"/> </activity> <!-- This activity enables the search dialog to initiate searches in the SearchableActivity. --> <activity android:name=".OtherActivity" ... > <!-- Enable the search dialog to send searches to SearchableActivity. --> <meta-data android:name="android.app.default_searchable" android:value=".SearchableActivity" /> </activity> ... </application>
이제 OtherActivity
에는
검색 가능한 활동을 선언하는 <meta-data>
요소
를 사용하면 활동이 검색 대화상자를 활성화합니다. 사용자가
이 활동에서 onSearchRequested()
메서드는
검색 대화상자 사용자가 검색을 실행하면 시스템이 시작됩니다.
SearchableActivity
ACTION_SEARCH
(으)로 배송
인텐트를 지정할 수 있습니다.
앱의 모든 활동이 검색 대화상자를 제공하도록 하려면
이전 <meta-data>
요소를
<application>
요소(각 <activity>
대신)를 사용합니다. 이렇게 하면
는 값을 상속하고, 검색 대화상자를 제공하며,
확인할 수 있습니다 검색 가능한 활동이 여러 개인 경우
기본 검색 활동을 재정의하려면 다른
<meta-data>
선언을 지원합니다.
이제 활동에 대해 검색 대화상자가 활성화되었으므로 앱에서 검색 수행
검색 대화상자 호출
일부 장치는 전용 검색 버튼을 제공하지만
버튼은 기기마다 다를 수 있으며 많은 기기에서 검색 기능을 제공하지 않습니다.
버튼이 전혀 표시되지 않습니다. 따라서 검색 대화상자를 사용할 때는
를 호출하여 검색 대화상자를 활성화하도록 UI에 표시할 수 있습니다.
onSearchRequested()
예를 들어
옵션 메뉴 또는 UI 레이아웃
이 함수는 onSearchRequested()
를 호출합니다.
'입력하여 검색'을 사용 설정할 수도 있습니다. 기능을 사용하면
검색 대화상자가 표시됩니다. 키 입력은
검색 대화상자에 삽입됩니다. 활동에서 '입력하여 검색' 기능을 사용 설정할 수 있습니다.
(으)로
setDefaultKeyMode
또는
DEFAULT_KEYS_SEARCH_LOCAL
:
내 활동의
<ph type="x-smartling-placeholder">onCreate()
</ph>
메서드를 사용하여 축소하도록 요청합니다.
검색 대화상자가 활동 수명 주기에 미치는 영향
검색 대화상자는
플로팅 Dialog
을 터치합니다. 액티비티 스택에 어떠한 변화도 일으키지 않으므로
검색 대화상자가 표시될 때 다음과 같은 수명 주기 메서드가 없습니다.
onPause()
—다음과 같음
합니다. 입력 포커스가
검색 대화상자
검색 대화상자가 활성화되었을 때 알림을 받으려면
onSearchRequested()
메서드를 사용하여 지도 가장자리에
패딩을 추가할 수 있습니다. 시스템이 이 메서드를 호출할 때
는 활동이 검색 대화상자에 대한 입력 포커스를 상실한다는 것을 나타냅니다. 따라서
게임 일시중지와 같이 이벤트에 적합한 작업을 할 수 있습니다. 예외적인 경우
검색 컨텍스트를 전달하고 있습니다.
데이터의 정의에 관해서는 이 문서의 다른 섹션에서 설명하는
슈퍼클래스 구현을 호출하여 이 메서드를 호출합니다.
Kotlin
override fun onSearchRequested(): Boolean { pauseSomeStuff() return super.onSearchRequested() }
자바
@Override public boolean onSearchRequested() { pauseSomeStuff(); return super.onSearchRequested(); }
사용자가 뒤로 버튼을 탭하여 검색을 취소하면 검색 대화상자
가 닫히고 활동이 입력 포커스를 다시 얻습니다. 알림을 받도록 등록할 수 있습니다.
검색 대화상자가 닫힐 때
setOnDismissListener()
,
setOnCancelListener()
,
또는 둘 다일 수 있습니다. 다음 단계에 따라
OnDismissListener
,
검색 대화상자가 닫힐 때마다 호출되기 때문입니다. 이
OnCancelListener
사용자가 명시적으로 검색 대화상자를 종료하는 이벤트에만 해당하므로
검색이 실행될 때 호출되지 않습니다. 검색이 실행되면
검색 대화상자가 자동으로 사라집니다.
현재 활동이 검색 활동이 아닌 경우 정상
활동 수명 주기 이벤트는 사용자가
검색: 현재 활동이 설명된 대로 onPause()
를 수신합니다.
in 소개
활동을 참조하세요. 하지만 현재 활동이 검색 가능 활동인 경우
다음 두 가지 상황 중 하나가 발생합니다.
- 기본적으로 검색 가능 활동은
onCreate()
호출이 포함된ACTION_SEARCH
인텐트 활동의 새 인스턴스가 활동의 맨 위로 가져옴 있습니다 현재 검색 가능 활동에는 이전 버튼을 누르면 이전 작업으로 돌아가고 검색 가능한 활동 인스턴스를 종료하는 것이 아니라 있습니다. android:launchMode
를"singleTop"
로 설정하면 검색 가능 활동이ACTION_SEARCH
인텐트를 수신합니다. 다음으로onNewIntent(Intent)
, 새ACTION_SEARCH
인텐트를 전달합니다. 예를 들어 검색 가능 활동의 실행 모드가 시작되어"singleTop"
입니다.Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.search) handleIntent(intent) } override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) setIntent(intent) handleIntent(intent) } private fun handleIntent(intent: Intent) { if (Intent.ACTION_SEARCH == intent.action) { intent.getStringExtra(SearchManager.QUERY)?.also { query -> doMySearch(query) } } }
자바
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.search); handleIntent(getIntent()); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); handleIntent(intent); } private void handleIntent(Intent intent) { if (Intent.ACTION_SEARCH.equals(intent.getAction())) { String query = intent.getStringExtra(SearchManager.QUERY); doMySearch(query); } }
다음 섹션의 예시 코드와 비교하면 검색을 수행하면 검색 인텐트가 이제
handleIntent()
메서드에 있으므로 둘 다onCreate()
및onNewIntent()
가 실행할 수 있습니다.시스템이
onNewIntent(Intent)
를 호출할 때 활동은 실행되지 않습니다. 다시 시작했기 때문에getIntent()
메서드는onCreate()
로 수신된 것과 동일한 인텐트를 반환합니다. 이것이 바로setIntent(Intent)
onNewIntent(Intent)
내에서: 인텐트가 향후getIntent()
를 호출할 경우 활동이 업데이트됩니다.
"singleTop"
실행 모드를 사용하는 두 번째 시나리오는 일반적으로
검색이 완료된 후에 사용자가 추가 검색을 할 수 있기 때문에
앱이 검색 결과에서 여러 개의 인스턴스가 만들어지는 것을
검색 가능 활동 검색 가능 활동을 다음과 같이 설정하는 것이 좋습니다.
"singleTop"
실행 모드를 시작하세요.
다음 예를 참고하세요.
<activity android:name=".SearchableActivity" android:launchMode="singleTop" > <intent-filter> <action android:name="android.intent.action.SEARCH" /> </intent-filter> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable"/> </activity>
검색 문맥 데이터 전달
경우에 따라
모든 검색에 대한 검색 가능 활동 그러나
사용자의 검색 활동을 바탕으로 검색 조건을 정합니다.
시스템이 전송하는 인텐트에 추가 데이터를 제공할 수 있습니다.
확인할 수 있습니다. 추가 데이터를 전달할 수 있습니다.
APP_DATA
Bundle
:
ACTION_SEARCH
인텐트에 포함됩니다.
이러한 종류의 데이터를 검색 가능 활동에 전달하려면
사용자가 작업을 실행할 수 있는 활동의 onSearchRequested()
메서드
검색을 실행하고 추가 데이터로 Bundle
를 만듭니다.
통화
<ph type="x-smartling-placeholder">startSearch()
</ph>
검색 대화상자를 활성화합니다. 예를 들면 다음과 같습니다.
Kotlin
override fun onSearchRequested(): Boolean { val appData = Bundle().apply { putBoolean(JARGON, true) } startSearch(null, false, appData, false) return true }
자바
@Override public boolean onSearchRequested() { Bundle appData = new Bundle(); appData.putBoolean(SearchableActivity.JARGON, true); startSearch(null, false, appData, false); return true; }
true가 반환되면 이 콜백 이벤트를 성공적으로 처리했음을 나타내며
startSearch()
를 호출하여 검색 대화상자를 활성화합니다. 사용자가
쿼리를 제출하면 해당 검색어가 데이터와 함께 검색 활동에 전달됩니다.
추가할 수 있습니다. APP_DATA
에서 추가 데이터를 추출할 수 있습니다.
다음 예와 같이 Bundle
를 사용하여 상세검색을 수행합니다.
Kotlin
val jargon: Boolean = intent.getBundleExtra(SearchManager.APP_DATA)?.getBoolean(JARGON) ?: false
자바
Bundle appData = getIntent().getBundleExtra(SearchManager.APP_DATA); if (appData != null) { boolean jargon = appData.getBoolean(SearchableActivity.JARGON); }
검색 위젯 사용
검색 위젯은 검색 대화상자와 동일한 기능을 제공합니다. 그것은 사용자가 검색을 실행할 때 적절한 활동을 시작하고 추천 검색어 제공 및 음성 검색 수행 이 옵션을 사용할 수 없는 경우 앱 바에 검색 위젯을 넣으려면 검색 위젯을 사용하는 대신 위젯을 생성할 수 있습니다.
<ph type="x-smartling-placeholder">검색 위젯 구성
kubectl 명령어
검색 구성 및
검색 가능한 활동, 지원 검색 사용 설정
다음을 호출하여 각 SearchView
에 대해
setSearchableInfo()
객체를 나타내는 SearchableInfo
객체를
구성할 수 있습니다
다음을 호출하여 SearchableInfo
참조를 가져올 수 있습니다.
getSearchableInfo()
의
SearchManager
입니다.
예를 들어 SearchView
를
앱바가 표시되는 동안
onCreateOptionsMenu()
콜백을 호출합니다.
Kotlin
override fun onCreateOptionsMenu(menu: Menu): Boolean { // Inflate the options menu from XML. val inflater = menuInflater inflater.inflate(R.menu.options_menu, menu) // Get the SearchView and set the searchable configuration. val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager (menu.findItem(R.id.menu_search).actionView as SearchView).apply { // Assumes current activity is the searchable activity. setSearchableInfo(searchManager.getSearchableInfo(componentName)) setIconifiedByDefault(false) // Don't iconify the widget. Expand it by default. } return true }
자바
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the options menu from XML. MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.options_menu, menu); // Get the SearchView and set the searchable configuration. SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); // Assumes current activity is the searchable activity. searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); searchView.setIconifiedByDefault(false); // Don't iconify the widget. Expand it by default. return true; }
이제 검색 위젯이 구성되었으며 시스템에서 검색어를 전달합니다. 검색 활동에 추가할 수 있습니다. 또한 추천 검색어를 보여줍니다.
<ph type="x-smartling-placeholder">앱 바의 작업 뷰에 관한 자세한 내용은 다음을 참고하세요. 작업 보기 및 작업 사용 제공업체의 서비스 제공업체일 수 있습니다.
기타 검색 위젯 기능
SearchView
위젯은 개발자가
:
- 제출 버튼
- 기본적으로 검색어를 제출하는 버튼이 없으므로
키보드에서 Return 키를 눌러 검색을 시작합니다. 나
'제출'을 추가할 수 있습니다. 버튼을
setSubmitButtonEnabled(true)
- 추천 검색어의 쿼리 조정
- 추천 검색어를 사용하면 일반적으로 사용자가
더 정확한 검색어를 추천받을 수 있습니다.
각 추천 옆에 추천을 삽입하는 버튼을 추가할 수 있습니다.
를 검색하여 사용자가 상세검색을 수행할 수 있도록 합니다.
setQueryRefinementEnabled(true)
- 검색창 표시 여부 전환 기능
- 검색 위젯은 기본적으로 '아이콘화'되어 있습니다. 다시 말해
검색 아이콘(돋보기)으로만 표현됩니다. 이는 다음으로 확장됩니다.
사용자가 아이콘을 탭하면 검색창이 표시됨 앞서 설명했듯이
예를 들어
setIconifiedByDefault(false)
다음을 호출하여 검색 위젯 모양을 전환할 수도 있습니다.setIconified()
SearchView
클래스에는
검색 위젯을 맞춤설정할 수 있습니다. 하지만 대부분의 API는
모든 사용자 입력을 직접 처리합니다.
검색어 및 추천 검색어 표시
위젯과 대화상자 모두 사용하기
앱 바에 검색 위젯을
작업 보기를 클릭하고 사용 설정
여유 공간이 있으면 앱 바에 표시되도록 하려면
android:showAsAction="ifRoom"
: 검색 위젯이
작업 뷰로 표시되지 않습니다. 대신 메뉴 항목이
선택합니다. 예를 들어 앱이 작은 화면에서 실행되는 경우
앱 바에 다른 작업과 함께 검색 위젯을 표시할 충분한 공간이 있어야 합니다.
항목 또는 탐색 요소를 추가할 수 있으므로 메뉴 항목이 대신
선택합니다. 더보기 메뉴에 배치하면 항목이 일반 메뉴처럼 작동합니다.
작업 뷰(즉, 검색 위젯)를 표시하지 않습니다.
이 상황을 처리하기 위해 검색 위젯을 연결하는 메뉴 항목은
는 사용자가 더보기 메뉴에서 검색 대화상자를 선택할 때 활성화해야 합니다.
이렇게 하려면
onOptionsItemSelected()
'Search'라는 메뉴 항목을 열고
onSearchRequested()
앱 바의 항목이 작동하는 방식과 자세한 내용은 앱 바를 추가합니다.
음성 검색 추가
다음을 수행하여 검색 대화상자나 위젯에 음성 검색 기능을 추가할 수 있습니다.
android:voiceSearchMode
속성을 검색 가능한
구성할 수 있습니다 그러면 음성 프롬프트를 실행하는 음성 검색 버튼이 추가됩니다.
사용자가 말하기를 마치면 스크립트가 작성된 검색어가
검색 가능 활동
예를 들면 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/search_label" android:hint="@string/search_hint" android:voiceSearchMode="showVoiceSearchButton|launchRecognizer" > </searchable>
음성을 사용 설정하려면 showVoiceSearchButton
값이 필요합니다.
검색 두 번째 값 launchRecognizer
는
음성 검색 버튼을 누르면 시작되어야 할 인식기가
텍스트를 검색 활동에 추가합니다.
음성 검색 동작을 지정하기 위해 추가 속성을 제공할 수 있습니다. 지정할 수 있습니다. 자세한 내용은 검색 구성 참고 자료 사용 가능한 속성에 대한 정보입니다.
<ph type="x-smartling-placeholder">를 통해 개인정보처리방침을 정의할 수 있습니다.추천 검색어 추가
검색 대화상자와 검색 위젯 모두 추천 검색어를 제공할 수 있습니다. Android 시스템의 도움을 받아 자동으로 실행되도록 할 수 있습니다. 시스템에서 추천 목록을 가져오고 사용자가 추천 항목을 선택하면 이벤트를 처리합니다. 추천되지 않습니다.
두 가지 추천 검색어를 제공할 수 있습니다.
- 최근 검색어 추천
- 추천 단어는 사용자가 이전에 검색에 사용한 단어입니다. 쿼리합니다. 추가 맞춤 추천 검색어를 참고하세요.
- 맞춤 추천 검색어
- 내 데이터 소스에서 제공하는 추천 검색어입니다. 사용자가 검색 중인 올바른 맞춤법 또는 항목을 즉시 선택하도록 지원 정의합니다. 맞춤 검색 추가를 참조하세요. 권장사항을 참고하세요.