Trong đơn đăng ký của tôi, tôi có thể tìm kiếm nhà cung cấp nội dung của mình, xác định hoạt động chính của tôi là hoạt động tìm kiếm mặc định trên tệp kê khai của tôi.onSuggestionNhấp vào hoạt động của tôi
<activity
android:name="com.pt.application.MainActivity"
android:label="@string/title_activity_map"
android:launchMode="singleTop"
android:theme="@style/AppTheme" >
<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>
Sau đó, tôi đã triển khai tùy chọn onSuggestionClick để cập nhật bản đồ, dựa trên đề xuất do người dùng nhấp. Chế độ xem tìm kiếm nằm trên thanh tác vụ. Vấn đề là khi người dùng nhấp vào một đề xuất, bằng cách nào đó hoạt động được tạo lại (tôi nghĩ OnPause và OnResume được gọi?). Có cách nào để ngăn chặn điều này xảy ra không? Tôi không muốn hoạt động của mình được "tạo lại" mỗi lần người dùng nhấp vào đề xuất.
Nếu cần thêm mã, vui lòng hỏi. Cảm ơn.
EDIT: Mã thêm
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/search_hint"
android:voiceSearchMode="showVoiceSearchButton|launchRecognizer"
android:voiceLanguageModel="web_search"
android:searchSuggestAuthority="com.pt.provider"
android:searchSuggestIntentData="content://com.pt.provider/busstop">
</searchable>
On hoạt động chính của tôi:
// Bind the Activity’s SearchableInfo to the Search View
searchView = (SearchView)menu.findItem(R.id.menu_search).getActionView();
this.setupSearchView();
private void setupSearchView()
{
// Use the Search Manager to find the SearchableInfo related
// to this Activity.
SearchManager searchManager =
(SearchManager)getSystemService(Context.SEARCH_SERVICE);
SearchableInfo searchableInfo =
searchManager.getSearchableInfo(getComponentName());
searchView.setSearchableInfo(searchableInfo);
searchView.setSubmitButtonEnabled(false);
searchView.setOnSuggestionListener(new OnSuggestionListener() {
@Override
public boolean onSuggestionSelect(int position) {
return false;
}
@Override
public boolean onSuggestionClick(int position) {
// Do things
return false;
}
});
}
hãy thêm mã hoạt động của bạn (hoặc ít nhất là tất cả các phần có liên quan mà phải làm với tìm kiếm) cũng như tìm kiếm của bạn .xml. –
Đã thêm một số mã. – Gravecard