Tôi có một tiện ích tìm kiếm (SearchView), hiển thị các đề xuất tùy chỉnh khi nhập. Tôi đã theo dõi official guide để thêm các truy vấn gần đây vào đề xuất nhưng tôi vẫn chỉ có các đề xuất tùy chỉnh.
Đối với mỗi lần tìm kiếm, đoạn tôi gọi hàm này (xác minh):tìm kiếm gần đây không được hiển thị, đề xuất tùy chỉnh là
private void addQueryToRecent(String query) {
SearchRecentSuggestions suggestions = new SearchRecentSuggestions(getActivity(),
MyCustomSuggestionProvider.AUTHORITY,
MyCustomSuggestionProvider.MODE);
suggestions.saveRecentQuery(query, "recent");
}
cung cấp Đề nghị của tôi có vẻ ok:
public class MyCustomSuggestionProvider extends SearchRecentSuggestionsProvider {
public final static String AUTHORITY = "com.zgui.musicshaker.provider.MyCustomSuggestionProvider";
public final static int MODE = DATABASE_MODE_QUERIES | DATABASE_MODE_2LINES;
public MyCustomSuggestionProvider() {
setupSuggestions(AUTHORITY, MODE);
}
@Override
public Cursor query(Uri uri, String[] projection, String sel,
String[] selArgs, String sortOrder) {
//retrieves a custom suggestion cursor and returns it
}
}
searchable.xml:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:hint="artist, track informations..."
android:label="@string/app_name"
android:queryAfterZeroResults="true"
android:searchSuggestAuthority="com.zgui.musicshaker.provider.MyCustomSuggestionProvider"
android:searchSuggestSelection=" ?" />
manifest:
<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>
<provider
android:name=".provider.MyCustomSuggestionProvider"
android:authorities="com.zgui.musicshaker.provider.MyCustomSuggestionProvider"
android:enabled="true" >
</provider>
Theo cách that post, tôi dự định có một db tìm kiếm gần đây tại dữ liệu/dữ liệu/app.package.name/cơ sở dữ liệu/databasename.db, nhưng tôi dường như không ...
Hoặc có thể tôi có nên thêm "gợi ý tìm kiếm gần đây" vào con trỏ mà MyCustomSuggestionProvider.query() trả về không? Bất cứ ý tưởng được chào đón ...
Bạn không sử dụng SearchSuggestionProvider, làm cách nào? –