2010-10-08 2 views
5

목록보기가 있습니다. 해당 목록보기에서 일부 항목을 회색으로 표시하고 사용하지 않도록 설정하고 별도의 색으로 나머지 목록 항목을 사용하도록 설정해야합니다. 이 작업을 수행하는 방법?목록 항목을 비활성화하고 회색으로 표시합니다.

+0

어떻게 목록을 생성합니까? 프로그래밍 방식으로 Java 활동 내부 또는 XML 리소스로? – methode

답변

5

ListView에 대해 BaseAdapter를 확장하는 사용자 지정 어댑터를 작성해야합니다. 특정 항목을 비활성화하려면이 어댑터에서 "boolean isEnabled (int position)"을 재정의하고 비활성화하려는 모든 위치에 대해 false를 반환해야합니다.

특정 목록 요소의 배경색을 변경하는 방법 : 표시하려는 데이터 구조에 배경색 값을 저장할 수 있습니다. 사용자 지정 어댑터의 'getView()'메서드에서 현재 요소에 대한이 색상 값을 확인하고 올바른 배경색 세트가 설정된보기를 반환해야합니다.

또는 ListView에서 'getChildAt()'를 호출하고 목록의 원하는 요소에 대한 View 개체를 가져 와서 배경색을 변경할 수 있습니다. 차라리 이전 솔루션을 사용하고 싶습니다.

이렇게 변경 한 후에는 ListView 어댑터에서 'notifyDataSetChanged()'를 호출해야합니다.

+0

많이 고맙다 !!! 그게 효과가! – mdv

관련 문제