使用搜索对话框时,我已成功实现了自定义搜索建议。但是目前每个建议项目都只是文本。我想在左边添加一个图标。但问题是,我没有这些图片在本地,而是我可以通过URL访问它们。我一直无法在文档(Building a suggestion table)中找到如何将URL而不是Uri发送到SUGGEST_COLUMN_ICON_1下的本地文件。使用自定义布局搜索时的自定义建议
1
A
回答
0
我发现这是不可能的,只要你想使用默认的Android搜索功能即可。如果您不知道,请评论。
1
所以这是可能的,但它是一个相当愚蠢和有点hacky。您必须创建一个ContentProvider来提供应用程序内部缓存目录中的图像(请参阅我的答案https://stackoverflow.com/a/15667914/473201)。
然后,由于您的文件ContentProvider将在主UI线程上访问,因此无法在该处下载图像。您必须下载搜索建议ContentProvider的query()函数中的所有图像。如果将它们放入应用程序的内部缓存目录中,ContentProvider文件可以在SearchView要求时返回它们。
喜欢的东西:
class ImagesProvider extends ContentProvider {
...
// stuff from https://stackoverflow.com/a/15667914/473201
...
}
然后在您的ContentProvider搜索:
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
// create a cursor table of results
MatrixCursor mc = new MatrixCursor(columns);
for (SearchResult res : results) {
String filename = res.getId();
ImagesProvider.downloadAndSaveFile(filename, res.getPictureUrl());
mc.addRow(new Object[] {
res.getId(),
res.getName(),
ContentUris.withAppendedId(ImagesProvider.CONTENT_URI, filename)
});
}
return mc;
}
0
我知道这是一个老问题,但在话题的StackOverflow职位显得稀疏。
我花费了大量的时间(〜5小时)试图使用自定义布局进行搜索(想要的结果是全屏并按类别分段,这是相当自定义的布局),并使用描述的方法在关于主题的android documentation中,但是当使用SearchWidget时,我的SearchActivity(使用其定义的自定义布局)从未被创建,因为Android系统直接调用了我的内容提供者的查询方法并将结果呈现在一个丑陋的下拉列表中。我结束了自己的定制搜索,花了大约1个小时,所以简短的答案是,自己推出。
相关问题
- 1. android搜索:自定义建议布局
- 2. 搜索结果的自定义布局
- 3. 如何构建自定义搜索建议的建议表?
- 4. 自定义布局
- 5. 自定义谷歌自定义搜索
- 6. 使用自定义模板自定义Pagerfanta分页的布局
- 7. Android搜索框架,自定义搜索建议
- 8. 在ActionBarSherlock搜索栏中制作自定义搜索建议
- 9. 自定义搜索建议在搜索部件
- 10. 带自定义搜索框的Google自定义搜索?
- 11. 什么是ContentProvider使用?最近搜索的建议和自定义建议
- 12. 自定义布局的Android
- 13. 自定义布局的Java
- 14. RadioButton的自定义布局
- 15. 自定义布局Magento的
- 16. 如何创建要在自定义布局上使用的自定义LayoutParams?
- 17. 使用自定义帖子类型搜索自定义字段
- 18. 如何使用我自己的自定义EditText布局作为搜索查看
- 19. 定义自定义协议
- 20. 自定义的Plone搜索
- 21. CakePHP的自定义搜索
- 22. WordPress的自定义搜索
- 23. Angularjs的自定义搜索
- 24. AutoCompleteStringCollection的自定义搜索
- 25. 的WordPress:自定义搜索
- 26. WordPress的自定义搜索
- 27. Android自定义布局(sneekbar)
- 28. 自定义布局ActionBarSherlock
- 29. 自定义抽屉布局
- 30. 自定义Android布局
感谢您的好评!我有这个工作正常,除了我返回尚未下载的图像的占位符,然后在后台下载它们。建议不会阻止,这是很好的,但我没有找到一种方法来更新它们后的图像下载。有任何想法吗?我尝试过'ContentResolver.notifyChange()',但它看起来像Android的'SuggestionAdapter'不会注册更改,所以它没有注意到。 – ryan 2013-11-05 01:47:02