나는 안드로이드 SDK를 처음부터 익히고있다. 그리고 나는 빠른 질문을했다. ListView 왼쪽 및 각 행에 대해 텍스트 약간의 색 사각형을 설정하려면 노력하고있어. 또한 목록에있는 각 항목을 클릭하고 연락처 목록과 비슷한 정보를 표시하는 새로운 활동을 열 수 있도록 목록을 만들고 싶습니다. 누구든지 나를 도울 수있는 모범이 있습니까?Android에서 ListView를 사용 하시겠습니까?
답변
Here is an excerptone of my books 설명하는 것과 같이 복잡한 목록 행을 갖는 것에 대해 설명합니다.
BaseAdapter를 서브 클래 싱하지 않아도되지만 사용자 정의 항목보기 및 객체를 기반으로하는 사용자 정의 항목 클릭 논리로 작업하려는 경우 여기에 대한 설명을 참조하십시오.
내 코드에서 일부 모델 개체의 컬렉션을 사용하고 있습니다. 이 모델 개체 컬렉션을 ListView에 표시하려고합니다. KeyValue 쌍의 목록 (예 : List<Map<String, Object>>
)을 기대하기 때문에 ModelAdapter의 ArrayList를 SimpleAdapter에 전달할 수 없습니다. 그래서, 내 응용 프로그램 내에서 내 개체의 간단한 컬렉션을 사용하는 대신, 내가 사용했던 구조에서 단순히 파생 내 컬렉션을 나타내는 사용자 정의 클래스를 만들었습니다. 이렇게하면 코드를 그대로 사용할 수 있지만 코드 친화적 컬렉션에서 SimpleAdapter 친숙한 컬렉션으로 변환하는 메서드를 추가 할 수 있습니다. 내 경우에는 일부 문자열 속성 (예 : HashMap<String, ModelObject>
)에 의해 키잉 된 HashMap을 사용하고있었습니다. 내 맞춤 컬렉션 클래스는 ModelObjects
(복수형)은 HashMap<String, ModelObject>
입니다. ModelObjects
그러면 내 개체를 ArrayList<? extends HashMap<String, ?>>
으로 변환 한 후 SimpleAdapter 생성자에 전달하여 사용자 지정보기가있는 목록에 표시 할 수있는 ToList()
메서드가 포함됩니다. 그래서
지금은 다음과 같은 5 개 개의 매개 변수와 SimpleAdapter를 구성 할 수 있습니다
- 내 목록의 컨텍스트 (전술) (내 경우에는, 포함하는 활동)
- 내 목록을
- 이 항목에 대한 사용자 정의 레이아웃의 ID (R.layout.custom_list_item)
- 속성 이름의 문자열 배열입니다. 이들은 My ToList 메소드의 HashMap에있는 키입니다. 내 OnItemClickListener.onItemClick 방법에서,
그런 다음 내 사용자 지정 레이아웃 뷰에서 파생 된 요소 ID에 상기 (4 #)의 각 항목의 속성을 매핑
유일한 트릭은 수정되지 않은 활동 내에 콜렉션의 로컬 사본을 저장해야한다는 것입니다. 그렇지 않으면 onItemClick에서 id로 개체를 찾고 예상보다 다른 개체를 얻을 수 있습니다. 문맥에서 조금 벗어날 수 있지만 여기 내 코드는 다음과 같습니다.
ListView lvArtists = (ListView)findViewById(R.id.lvArtists);
SimpleAdapter adapter = new SimpleAdapter(
this,
artists.ToList(),
R.layout.artist_list_item,
new String[] { "name", "imageIdSmall", "tracksCount", "tracksPending" },
new int[] { R.id.artistListItemName, R.id.artistListItemImage, R.id.artistListItemAudioClips, R.id.artistListItemAudioClipsPending }
);
lvArtists.setAdapter(adapter);
lvArtists.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Artist artist = artists.getSortedItem((int)arg3);
mArtistDialog.setArtist(artist);
mArtistDialog.show();
}
});
- 1. Android에서 AbsoluteLayout을 사용 하시겠습니까?
- 2. Android에서 복어 암호화를 사용 하시겠습니까?
- 3. Android에서 단일 상위 레이아웃으로 두 테이블의 ListView를 표시 하시겠습니까?
- 4. ListView를 SlidingDrawer에 추가 하시겠습니까?
- 5. ListView를 Settings.settings에 저장 하시겠습니까?
- 6. ListView를 사용하여 Android에서 롤러 모양의 롤러 만들기
- 7. ListView를
- 8. Android에서 인 텐트를 Spotify 하시겠습니까?
- 9. 특정 ID에 대한 listview를 반복 하시겠습니까?
- 10. SQLite WPF에서 ListView를 채우는 데 사용 #
- 11. 이미지를 Android에서 캡처 하시겠습니까?
- 12. Android에서 AbsoluteLayout을 대체 하시겠습니까?
- 13. Android에서 레이아웃을 센터링 하시겠습니까?
- 14. android에서 iCalendar를 구현 하시겠습니까?
- 15. android에서 데이터베이스로 작업 하시겠습니까?
- 16. android에서 listview를 만드는 방법은 무엇입니까? 얼마나 많은 방법을 사용해야합니까?
- 17. android에서 listview를 클릭하면서 사용자 지정 대화 상자 활동을 얻는 방법?
- 18. Android에서 JDO 사용
- 19. Android에서 Navteq지도 사용
- 20. Android에서 TextView 사용 문제
- 21. android에서 이미지 스프라이트 사용
- 22. android에서 외부 글꼴 사용
- 23. android에서 예외 사용
- 24. Android에서 탭 사용
- 25. Android에서 카메라 활동 사용
- 26. Android에서 Table 태그 사용
- 27. Android에서 sqlite (FTS 사용)
- 28. Android에서 위젯 사용
- 29. Android에서 keyCodeToString() 사용 방법
- 30. android에서 serviceloader 사용