검색 대화 상자를 사용할 때 사용자 지정 검색 제안을 성공적으로 구현했습니다. 그러나 현재 각각의 추천 항목은 텍스트 일뿐입니다. 왼쪽에 아이콘을 추가하고 싶습니다. 하지만 문제는 로컬로 사진을 가지고 있지 않다는 것입니다. URL을 통해 액세스 할 수 있습니다. 문서 (Building a suggestion table)에서 Uri 대신 URL을 SUGGEST_COLUMN_ICON_1에서 로컬 파일로 보내는 방법을 찾을 수 없었습니다.사용자 지정 레이아웃으로 검색시 사용자 지정 제안
답변
기본 안드로이드 검색 기능을 사용하는 한 불가능하다는 것을 알고 있습니다. 그렇지 않으면 의견을 말하십시오.
이렇게 될 수는 있지만 상당히 엉뚱한 해커입니다. 앱의 내부 캐시 디렉토리에서 이미지를 제공하기 위해 ContentProvider를 만들어야합니다. 내 대답은 https://stackoverflow.com/a/15667914/473201입니다.
그러면 ContentProvider 파일이 기본 UI 스레드에서 액세스되기 때문에 거기에서 이미지를 다운로드 할 수 없습니다. 추천 검색어 ContentProvider의 query() 함수에서 모든 이미지를 다운로드해야합니다. 앱의 내부 캐시 디렉토리에 저장하면 SearchProve가 요청할 때 ContentProvider 파일을 반환 할 수 있습니다. 같은
뭔가 : 검색 컨텐트 프로에서 그런
class ImagesProvider extends ContentProvider {
...
// stuff from https://stackoverflow.com/a/15667914/473201
...
}
:
@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;
}
나는이 오래된 질문 알지만, 주제에 StackOverflow의 게시물이 드문 드문 보인다.
커스텀 레이아웃 (원하는 결과를 전체 화면으로 표시하고 카테고리별로 세분화 한 것은 꽤 맞춤형 레이아웃입니다)을 사용하고 검색 방법을 설명하는 데 많은 시간을 (~ 5 시간) 그러나 Subject의 android documentation에서 SearchWindget을 사용할 때 내 SearchActivity (정의 된 사용자 정의 레이아웃 포함)가 생성되지 않았습니다. 안드로이드 시스템이 내 Content Provider의 쿼리 메소드를 직접 호출하고 결과를 추악한 드롭 다운 목록에 표시했기 때문입니다. 나는 나의 자신의 주문 수색을 구르는 것을 끝내었다. 그리고 1 시간 걸렸다. 그래서 짧은 대답은 당신 자신의 것다.
- 1. Codeigniter : 사용자 지정 'MY_Router'클래스의 사용자 지정 메서드
- 2. Sharepoint : 사용자 지정 목록의 사용자 지정 SiteMapProvider
- 3. 사용자 지정 어셈블리의 사용자 지정 httphandler 사용
- 4. 사용자 지정 컨트롤 사용자 지정 함수
- 5. 사용자 지정 UITableViewCell 내의 사용자 지정 UIView
- 6. 사용자 지정 숫자 서식 지정
- 7. 사용자 지정 영역 문제
- 8. 사용자 당 DataGridView 사용자 지정
- 9. 개별 사용자 지정 사용자 정의
- 10. 사용자 지정 컨트롤 generic
- 11. VB.Net 사용자 지정 컨트롤
- 12. 사용자 지정 UI 구성 요소의 XML 사용자 지정 특성을 사용자 지정 UI 하위 구성 요소로 전달
- 13. 사용자 지정 종속성 속성을 사용자 지정 WPF 스타일에 바인딩
- 14. .NET 워크 플로 사용자 지정 활동 - 사용자 지정 속성
- 15. 사용자 지정 PowerShell Snapin : 사용자 지정 형식이 작동하지 않습니다.
- 16. WPF 사용자 지정 컨트롤 - WPF 사용자 지정 컨트롤 템플릿에서 경로
- 17. Drupal - 사용자 지정 콘텐츠 형식의 사용자 지정 영역
- 18. asp.net 4.0 사용자 지정 401.2 권한이없는 사용자 지정 페이지
- 19. Silverlight 사용자 지정 컨트롤 사용자 지정 이벤트 만들기
- 20. 사용자 지정 컨트롤에 대한 사용자 지정 아이콘 표시?
- 21. 다른 사용자 지정 속성으로 사용자 지정 도구 파트 그룹화
- 22. 사용자 지정 워크 플로 단추가있는 사용자 지정 표시 양식
- 23. 사용자 지정 자식 요소가있는 ASP.NET의 사용자 지정 요소
- 24. 사용자 지정 httpmodule을 MVC 또는 사용자 지정 처리기로 선택적으로 추가하기
- 25. 사용자 지정 HTML 특성에는 사용자 지정 도우미가 필요합니까?
- 26. 사용자 지정 데이터 컨텍스트에서 바인딩을 사용자 지정 태그와 결합하는 방법
- 27. 사용자 지정 기회에서 관련 사용자 지정 개체로 데이터 복사
- 28. WCF 사용자 지정 MessageEncoder에는 사용자 지정 동작이 필요합니다.
- 29. WPF 데이터 바인딩 사용자 지정 : 사용자 지정 논리를 추가하는 방법?
- 30. 사용자 지정 콘텐츠 형식에 사용자 지정 필드가 표시되지 않습니다.
대단한 답변에 감사드립니다. 나는 아직 다운로드되지 않은 이미지의 자리 표시자를 반환하고 배경에서 다운로드하는 것을 제외하고는이 작업을 수행 할 수 있습니다. 제안은 차단하지 않습니다. 좋지만 이미지를 다운로드 한 후 업데이트 방법을 찾지 못했습니다. 어떤 아이디어? 'ContentResolver.notifyChange()'를 시도했지만 안드로이드의'SuggestionAdapter'가 변경 사항을 등록하지 않은 것처럼 보입니다. 그래서 알지 못합니다. – ryan