2012-02-26 5 views
0

나는 android sample에서 읽으면서 나는 SimpleCursorAdapter를 사용하는 경우, 자동으로 테이블의 기본 키에 목록보기의 ID를 설정, 그래서 나는 다음과 같은 이벤트 호출하는 경우 :메이크업 목록보기 고유하게 식별 안드로이드

protected void onListItemClick(ListView l, View v, int position, long id) 
{ 
...... 
} 

을 id 매개 변수를 읽음으로써 데이터베이스의 항목 (행)이 선택되었는지 쉽게 판별 할 수 있습니다.

하지만 내 사용자 지정 ArrayAdapter를 구현하여 목록보기를 채우고 있습니다. 내 전 question에서 설명했듯이. 그래서 목록 뷰 항목의 선택된 ID를 얻는 방법을 모르겠습니다.

내 테이블에는 long 형식의 _Id가 있고 기본 키이며 nvarchar 형식의 이름입니다.

감사합니다.

+0

그래서 ... 당신이 onListItemClick가 호출 될 때 클릭 된 항목을 발견 할을 수행하여 해당 키를 읽을 수 있습니까? – m1ntf4n

+0

예, 그렇기 때문에 데이터베이스를 다룰 수있었습니다 –

+0

어댑터 내에서 클릭 된 항목의 위치는 매개 변수 위치에 저장됩니다. 음 .. 그게 네가 의미하는 게 아니 겠지? – m1ntf4n

답변

1

List<T>은 사용자 지정 데이터 컨테이너 개체로 구성되어 있으므로 해당 데이터 컨테이너 클래스에 getPrimaryKey()과 같은 메서드를 추가하기 만하면됩니다. 이제, 방법 onListItemClicked에, 당신은 쉽게

DataContainer dataContainer = myDataList.get(position); 
int primaryKey = dataContainer.getPrimaryKey(); 

하거나

int primaryKey = myDataList.get(position).getPrimaryKey(); 
0

ArrayAdapter 대신 CursorAdapter를 확장하십시오. 그런 다음 bindView 및 newView를 재정 의하여 사용자 정의 논리 및 동작을 구현하십시오.

+0

자습서 또는 견본? 나는 안드로이드 개발의 초보자입니다. –

관련 문제