2010-12-01 5 views
0

내 앱 상단에 검색 창을 표시 할 때 문제가 있습니다. 난 그냥이 구멍을 응용 프로그램 (모든 활동)에 대한 응용 프로그램이 시작될 때도 사용자가 단추를 누를 필요없이 볼 수있게하려면, 나는 안드로이드의 검색 가능한 기능을 사용하려고합니다. 여기에 지금까지있어 무엇 :Android에 검색 창 표시

manifest.xml

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".Main" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:name=".BigImageView"> 
     <intent-filter> 
      <action android:name="android.intent.action.SEARCH" /> 
     </intent-filter> 
     <meta-data android:name="android.app.searchable" 
       android:resource="@xml/searchable"/> 
    </activity> 
    <!-- declare the default searchable Activity for the whole app --> 
    <meta-data android:name="android.app.default_searchable" 
      android:value=".BigImageView" /> 

</application> 

고해상도/XML/searchable.xml

<searchable xmlns:android="http://schemas.android.com/apk/res/android" 
android:label="@string/app_name" 
android:hint="@string/search_hint" > 

나는이 작업을 수행 할 수 또는 사용자가 검색 창을 호출하기 위해 버튼을 눌러야합니까?

답변

2

당신은 onResume()

onSearchRequested(); 

를 둘 수 있었다 -하지만 다른 구성 요소가 포커스를 취득 할 경우 검색 창은 숨길 것입니다.

원하지 않는 경우 검색 바 (예 : AutoCompleteTextView)를 구현해야합니다.

+0

에는 항상 검색 표시 줄에 포커스를 설정하는 방법이 있으므로 항상 표시됩니다. –

+0

onSearchRequested(); onCreate() 메소드가 작동했습니다. 이제 앱이 시작될 때 검색 창을 볼 수 있지만 모든 클래스에 대해 검색을 수행해야하는 것 같습니다. 그러면 onSearchRequested()를 한 곳에서만 선언 할 수있는 방법이없는 것처럼 보입니다. 그것을 모든 수업에 쓰는 것을 피하십시오. 나 맞아? –

+0

당신은 당신이 모든 당신의 모든 활동을 확장하는 (추상적 인) 기본 활동 (당신이 그 논리에 넣는 곳)을 만듭니다. 그런 다음 동일한 로직을 모든 곳에서 복사/붙여 넣기 할 필요가 없습니다. –