2011-08-08 7 views
1

AdapterCursorAdapter에서 확장 된 ListView 개체가 있습니다. onListItemClick() 방법에는 (ListView l, View v, int position, long id) 매개 변수 만 있습니다. 현재 선택한 목록의 item에 대해 _id으로 데이터베이스를 쿼리해야합니다. 하지만 database의 행의 _id이 목록의 행에 표시되는 것을 원하지 않습니다. 그래서 TextViewlist_item.xml에 만들고 widthheight0px으로 설정하여 보이지 않게했습니다. 따라서 newView()에 목록의 항목을 _iddatabase에 연결할 수 있습니다.ListView의 각 항목을 데이터베이스의 ID와 연결하는 방법

나는이 접근법이보기 흉하게 보인다. 다른 더 깔끔한 해결책이있을 수 있습니까?

+0

음, 왜 당신은 _id를 "보여줘야"할 필요가 있습니까? 목록의 일부일 필요는 없습니다. – Suchi

+1

그러나 그것을 보여주고 싶지는 않습니다. – Eugene

답변

2

this ViewHolder 패턴을 사용하면 행의 태그에 맞춤 개체를 설정할 수 있습니다. 추가 속성을 ViewHolder 클래스 (_id 등)에 추가하고 ViewHolder 객체를 만들 때이를 설정할 수 있습니다. 또한 뷰를 팽창시키고 재사용하는 성능 향상에 도움이 될 것입니다.

2

View.setTag()을 사용하여 사용자 지정 CursorAdapter에서 반환 한 모든보기에 연결 사용자 지정 개체를 설정할 수 있습니다. 그런 다음 onListItemClick()에서이 태그에 액세스하십시오.

+0

View를 ViewHolder와 연결하는 데 이미 사용하고 있습니다. 단일 개체에 대해 여러 개의 태그를 설정할 수 있습니까? – Eugene

+0

미안, 당신이 한 후에 같은 대답으로 대답했다는 것을 깨달았습니다. –

+0

@Patrick Kafka, 아무 문제가 없습니다 :) – inazaruk

관련 문제