2012-03-29 52 views
9

Tôi đang làm việc với thanh tác vụ có thể tìm kiếm được. Và tôi phải giải quyết vấn đề thanh tác vụ không phản ứng với hoạt động có thể tìm kiếm được. R ISNG, tôi nhập một cái gì đó trong textedit có thể tìm kiếm của thanh hành động sau đó nhấp vào gửi nhưng không có gì xảy ra. Theo dõi gỡ lỗi cho thấy rằng mã trong searchresultactivity của tôi không bao giờ được thực hiện. Vì vậy, tôi tự hỏi nếu có điều gì đó sai trong cấu hình tìm kiếm được. Vâng lần này tôi nghĩ rằng tôi đã giải thích rõ vấn đề và tôi không mong đợi bất kỳ phiếu bầu tiêu cực nào mà không có bất kỳ từ nào thậm chí còn phun ra!có thể tìm kiếm trên Android không hoạt động

Tôi làm theo các hướng dẫn của tài liệu phát triển nhân bắt đầu với manifest.xml, các siêu dữ liệu được thêm vào trong các hoạt động SearchResult:

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".GermanDictionaryActivity" 
     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=".SearchResultsActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.SEARCH" /> 
     </intent-filter> 
     <meta-data android:name="android.app.searchable" 
      android:resource="@xml/searchable" /> 
    </activity> 
</application> 

sau đó tôi khởi tạo các SearchView với thực đơn của tôi:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.srhbar, menu); 

    // Get the SearchView and set the searchable configuration 
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    mSrhView = (SearchView) menu.findItem(R.id.search).getActionView(); 
    mSrhView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
    mSrhView.setSubmitButtonEnabled(true); 

    return true; 
} 

Và mục có thể tìm kiếm trong menu:

<item android:id="@+id/search" 
    android:title="@string/srh_title" 
    android:showAsAction="collapseActionView|ifRoom" 
    android:actionViewClass="android.widget.SearchView" /> 

Bất kỳ câu trả lời nào liên quan là ap đặt trước!

+0

nơi u r gọi điện thoại 'onSearchRequested() '? –

+0

xem ví dụ này có thể hữu ích: [SearchableDictionary] (http://android.toolib.net/resources/samples/SearchableDictionary/index.html) –

+2

Tôi phải giải quyết vấn đề ngay sau khi đăng câu hỏi này, nhưng cảm ơn bạn. Đó là vì tôi không thêm siêu dữ liệu có thể tìm kiếm mặc định trong hoạt động chính của mình. chương trình của tôi hơi khác so với mẫu trong khi tôi chia chức năng tìm kiếm và hoạt động chính thành hai lớp. Và, hàm onSearchRequested() sẽ làm cho textedit được nhúng trên thanh như một khung nhìn độc lập được hiển thị duy nhất. – Hypeboyz

Trả lời

11

tôi giải quyết vấn đề bằng cách thay đổi dòng này:

searchView.setSearchableInfo(searchManager.getSearchableInfo(new ComponentName(getApplicationContext(), SearchResultsActivity.class))); 
+1

Xin cảm ơn Chúa vì câu trả lời này. Điều này giải quyết nó cho tôi. :-) – SherCoder

+0

Tôi đoán câu trả lời này và câu hỏi này cũng đã cứu tôi! Cảm ơn rất nhiều! Thật tuyệt khi biết rằng luôn có ai đó có vấn đề tương tự như của bạn mà bạn có thể giải quyết. Cảm ơn bạn một lần nữa và một lần nữa! – Salivan

Các vấn đề liên quan