2010-05-07 4 views
1

내 응용 프로그램은 사용자가 요소를 추가 할 수있는 버튼이있는 ListView를 표시합니다. 사용자가이 버튼을 클릭하면 사용자가 새 요소를 채울 수 있도록 다른 활동이 시작됩니다. 추가가 끝나면 ListView를 사용하여 이전 Activity로 돌아가고 새로운 요소로 스크롤하고 싶습니다. 데이터베이스에서 데이터를 검색 할 때 "정렬 기준"이 있기 때문에이 요소는 반드시 ListView 끝에 있지 않습니다.ListView에서 새로 추가 된 항목으로 스크롤하는 방법

ListView scrool을 만들기 위해 새 요소의 커서 위치가 필요하다는 것을 알고 있지만이 요소에 대한 유일한 정보는 해당 ID입니다.이 ID를 커서 위치로 변환하는 방법은 무엇입니까? 위치를 찾으려면 커서를 루프해야합니까? 사전

+1

새 항목이있는 항목이나보기가 있습니까? –

+0

귀하의 질문을 이해하지 못하는 새 항목을 추가하는 활동은 항목 데이터베이스 ID (ID 열)를 반환하고, 내가 listView로 돌아 왔을 때 데이터베이스에서 쿼리로 목록을 다시 채 웁니다. 해당 데이터베이스 ID 만 사용하여 새 항목으로 스크롤하는 방법을 알고 있습니다. – tbruyelle

답변

2

에서

감사합니다 나는 당신의 활동이 새로운 요소를 반환하고 데이터베이스에서 다시 모든 항목을 가져 당신이 가지고있는 유일한 정보는 요소의 ID입니다보다이 권리를 가지고 있다면. 이것이 시나리오라면 유일한 옵션은 어댑터의 모든 요소를 ​​반복하고 올바른 것을 찾는 것입니다. 그러나이 경우 ArrayAdapter를 사용하는 것이 더 나을지도 모릅니다. 두 번째 작업에서 새 ID를 반환하면 db에서 해당 ID를 가져온 다음 어댑터에 추가합니다. 삽입 정렬을 구현하여 add (T) 메서드를 재정의하면 어댑터가 정렬되고 새로 삽입 된 요소의 인덱스를 저장 한 다음이 위치로 스크롤 할 수 있습니다.

+0

네 말이 맞다. 여기서 제안한 것처럼, 커서를 반복하여 요소의 위치를 ​​찾도록 선택했다. 그런 다음'getListView(). setSelection (position)'을 호출합니다. 감사 – tbruyelle