커스텀 리스트뷰 예제

물론 목록 보기 주위에 임의의 뷰 요소를 배치할 수 있습니다. 예를 들어 두 개의 텍스트 뷰와 둘 사이의 목록 보기가 있는 레이아웃을 정의할 수 있습니다. 이 경우 두 텍스트 보기는 항상 목록(헤더) 위에 표시되고 다른 보기는 목록 아래에 표시됩니다. 목록 헤더 또는 목록 바닥글을 목록의 시작 또는 끝에만 표시하려면 ListView 클래스에서 addHeaderView() 메서드 또는 addFooterView() 메서드를 사용할 수 있습니다. 마지막으로 필요한 레이아웃은 레이아웃/listrow_details.xml입니다. 이미지 보기를 클릭할 때 사용자 지정 어댑터의 데이터를 기본 활동으로 전달하려면 어떻게 해야 합니까? 이 자습서에서는 텍스트 설명과 정보 아이콘을 표시하는 행 목록으로 구성된 응용 프로그램을 빌드합니다. 행을 클릭하면 해당 행의 텍스트 요소가 있는 SnackBar가 표시됩니다. 정보를 클릭하면 해당 행과 관련된 정보가 있는 스낵바가 표시됩니다. 어댑터는 목록의 각 행에 대한 레이아웃을 만들어야 합니다.

ListView 인스턴스는 각 데이터 요소에 대한 어댑터에서 getView() 메서드를 호출합니다. 이 방법에서 어댑터는 행 레이아웃을 만들고 데이터를 레이아웃의 뷰에 매핑합니다. 어댑터가 레이아웃을 팽창한 후 레이아웃에서 관련 뷰를 검색하고 데이터로 채웁니다. 레이아웃의 개별 요소는 최상위 보기에서 findViewById() 메서드 호출을 통해 찾을 수 있습니다. 4 단계 – 사용자 정의 적응자 클래스 만들기 src / CustomAdapter.java에 다음 코드를 추가이 부분은 사용자 정의 목록 어댑터를 효율적으로 구현하기 위해 이러한 작업을 줄이는 방법을 설명합니다. ArrayAdapter와 같은 기본 Android 어댑터는 이미 성능이 최적화되어 있습니다. de.vogella.android.listactivity 프로젝트를 계속 사용하십시오. 다음 예제에서는 이를 보여 줍니다.

rowselection.xml이라는 메뉴 XML 파일이 정의되어 있고 이 메뉴에 @+id/menuitem1_show ID가 있는 항목이 하나 있다고 가정합니다. 위의 activity_main.xml에서, 우리는 목록보기를 선언하고 아래와 같이 구분을 추가했습니다. 안드로이드는 이미 이것에 대한 기본 레이아웃을 제공합니다 : 안드로이드. 구성된 CheckedTextView 보기를 포함하는 R.layout.simple_list_item_item_multiple_choice 레이아웃입니다. ArrayAdapter는 행 레이아웃의 하나의 뷰에 toString()의 매핑만 지원하므로 제한됩니다. 데이터 할당을 제어하고 여러 뷰를 지원하려면 사용자 지정 어댑터 구현을 만들어야 합니다.