2009-10-22 4 views
0

각 항목에 2 개의 LinearLayouts가있는 사용자 정의 ArrayAdapter가 지원되는 ListView가 있습니다. 하나는 머리라고하고 다른 하나는 본문입니다. 사용자가 슬라이드 아웃 할 때 행을 클릭 할 때까지 본문이 숨겨집니다 (사라짐). 두 번째 클릭 (머리 위)은 시체를 숨 깁니다. 그러나 사용자가 본문을 클릭하면 다른 활동이 시작됩니다. 이 모든 것은 여기에, 잘 작동 문제 제공 :안드로이드 - 멋진 ListView 배경 문제

사용자 프레스 몸에 나는 액션의 시각적 표시를 누르면 오렌지 배경을 깜박 일반 목록 항목처럼 같은 방법으로합니다. onPress 이벤트가 본문보기에 의해 인터셉트되고 목록 항목에 의해 처리되지 않기 때문에 기본적으로이 옵션이 표시되지 않습니다.

내가 시도하는 첫번째 일은 onPress에 이벤트 (색상을 신경 쓰지) body.setBackground('#ff00ff')을 실행하는 것이 었습니다. 통화가 끝난 후 다시 그려지는 것은 아니기 때문에 (나는 의심 스럽다) 작동하지 않았다. 그런 다음 조금 더 파고 <selector/> 기반 배경을 사용하기로 결정했습니다. drawable 폴더에 body_background.xml을 정의하고 본문의 배경 속성에 할당했습니다.

거기서 짝수가 목록에 의해 처리되는 경우에만 배경이 변경된다는 것을 알았습니다. 예를 들어, <item android:state_selected="true" android:drawable="@drawable/selected"/>을 설정하면 머리를 누를 때마다 두 요소 (머리와 몸)의 배경이 변경되지만 몸을 누르면 아무 것도 변경되지 않습니다.

내 질문을 요약하려면 - 사용자 지정 onClick 처리기를 할당하면 목록 항목에서 하위 요소의 배경을 어떻게 변경합니까? 어떤 힌트도 크게 평가 될 것입니다.

답변

0

OK. 나가 길을 따라 발굴하는 몇몇 정보 더 여기있다.

  1. 나는 현재 내가 (몸을 슬라이딩)에서 코딩에 있던 기능을 제공 ExpandableListView에 구현을 전환하기 위해 노력하고있어. 내가 여기에있을 수 있습니다 문제는 내가 공상 "끝없는"리스트의 구현이 나는 음, add 방법은 BaseExpandableListAdapter에서 누락 (나의 tutorial on androidguys.com 참조) ArrayAdapter와 번호가 스크롤하는 동안 동적으로 목록에 항목을 추가하는 방법을 추가 사용하고 있다는 것입니다 그래서 내부 배열에 항목을 추가하는 것이 (ArrayAdapter에 대해) 작동하지 않을 가능성이 있습니다. ExpandableListView # notifyChanged()가이를 처리합니다.
  2. 직접적으로 볼 때 아무 것도 볼 수 없다는 사실 setBackgroundColor 방법을 사용하기 때문에 새로운 활동이 표시 될 때까지 모든 그림을 정지 startActivity 호출에 대한 후속 호출에 아마

PS 이것은 ExpandableListView로 전환하여 해결되었습니다. 그리고 추가 할 수 있습니다 - 아름답습니다! 아무 것도 발명 할 필요가 없음