Kullanıcı türleri olarak bir açılır menü açılır penceresinin görüntüleneceği bir SearchManager
kurulumum var. Sonuçlar benim sunucumdan (http). Her seçenekle bir simge görüntülemek istiyorum (dosya aslında mevcutsa).Arama Önerileri için SUGGEST_COLUMN_ICON_1 web URL'sini kullanma
docs bakınca sürekli sütunda SUGGEST_COLUMN_ICON_1
için seçenekler Bu seçeneklerin sağlar bkz:
Column name for suggestions cursor. Optional. If your cursor includes this column, then all suggestions will be provided in a format that includes space for two small icons, one at the left and one at the right of each suggestion. The data in the column must be a resource ID of a drawable, or a URI in one of the following formats:
content (SCHEME_CONTENT)
android.resource (SCHEME_ANDROID_RESOURCE)
file (SCHEME_FILE)
Tek sahip bir URL'dir. Hangi seçenek benim için en iyi seçenek olur? İşte
yapıyorumclass
geçerli:
public class MyCustomSuggestionProvider extends SearchRecentSuggestionsProvider {
public static final String AUTHORITY = "---.MyCustomSuggestionProvider";
public static final int MODE = DATABASE_MODE_QUERIES;
private final static String[] COLUMN_NAMES = {BaseColumns._ID,
SearchManager.SUGGEST_COLUMN_TEXT_1,
SearchManager.SUGGEST_COLUMN_TEXT_2,
SearchManager.SUGGEST_COLUMN_QUERY,
SearchManager.SUGGEST_COLUMN_INTENT_DATA,
SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA,
SearchManager.SUGGEST_COLUMN_ICON_1,
SearchManager.SUGGEST_COLUMN_INTENT_ACTION};
public MyCustomSuggestionProvider() {
setupSuggestions(AUTHORITY, MODE);
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
Cursor recentCursor = super.query(uri, projection, selection,
selectionArgs, sortOrder);
String query = selectionArgs[0];
if (query == null || query.length() < 3) {
return recentCursor;
}
final MatrixCursor customCursor = new MatrixCursor(COLUMN_NAMES);
// Get web results from Retrofit Library
List<TheProfile> suggestions = RestClient.get().getCustomSearch(query, MyApp.getUserId());
for (TheProfile suggestion : suggestions) {
Uri searchIconUri = Uri.parse("http:/---/profile_images/" + String.valueOf(suggestion.id) + ".png");
try {
customCursor.addRow(new Object[]{
suggestion.id, suggestion.profile, suggestion.subcategory, suggestion.profile, suggestion.profile, suggestion.subcategory, searchIconUri, "android.intent.action.SEARCH"});
} catch (Exception e) {
e.printStackTrace();
}
}
return customCursor;
}
}
Doğru hikaye: Aynı soruyu bir kez daha araştırdım, bu sayfayı buldum ve bu çözümü uyguladı. Harika çalışıyor. Eh, çoğunlukla. Meselenin bir kısmı bende kalıyorum. .placeholder() 'a ihtiyacım var ve henüz yukarıda çalışmak için henüz çözemedim. Ama ben görüntüleri alıyorum. Bunun neden doğru bir şekilde işaretlenmediğini merak ediyordum. Sonra ben bu soruyu sorduğumu farkettim! Eh, iki yıl sonra, doğru bir şekilde işaretliyorum. Gecikme özür dileriz;) – KickingLettuce