2011-03-02 3 views
1

앱에서 검색 기능을 구현하려고합니다. Nexus에서 검색 버튼을 누르면 onCreate() 및 onNewIntent()가 호출되지 않으므로 검색 의도가 나타나지 않는 것 같습니다. 기본적으로 Android developers에있는 전체 예제를 복사했지만 여전히 작동하지 않습니다. 당신의 도움을 주셔서 감사합니다검색 버튼을 눌렀을 때 onCreate() 또는 onNewIntent()가 실행되지 않음

고해상도/

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.openday.lectures" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="7" /> 

    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".LecturesListActivity" 
        android:label="@string/app_name" 
        android:launchMode="singleTop"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" />    
      </intent-filter> 
      <intent-filter> 
       <action android:name="android.intent.action.SEARCH" /> 
      </intent-filter> 
      <meta-data android:name="android.app.searchable" 
         android:resource="@xml/searchable"/> 
     </activity> 
     <activity android:name=".SingleLectureActivity" 
        android:label="Lecture"> 
     </activity> 
    </application> 

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
</manifest> 

LecturesListActivity.java이 (단축) searchable.xml

<?xml version="1.0" encoding="utf-8"?> 
<searchable xmlns:android="http://schemas.android.com/apk/res/android" 
    android:label="hello" 
    android:hint="Search lectures" > 
</searchable> 

AndroidManifest.xml을 검색 상수 문자열

public class LecturesListActivity extends ListActivity { 

    private String categoryDisplayed; 
    private String facultyDisplayed; 
    private List<Lecture> lectures; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     loadLectures(); 
     displayFaculties(); 
    } 

    @Override 
    protected void onNewIntent(Intent intent) { 
     setIntent(intent); 
     handleIntent(intent); 
    } 

    private void handleIntent(Intent intent) { 
     if (Intent.ACTION_SEARCH.equals(intent.getAction())) { 
      String query = intent.getStringExtra(SearchManager.QUERY); 
      searchForLectures(query); 
     } 
    } 
} 
+0

장치의 검색 버튼에 대한 작업을 수행 하시겠습니까? –

답변

관련 문제