이놈의 안드로이드 책은 getView()에서의 position만 항상 강조해서 이걸 0,1,2,3,4로 누르면 된다고 한다. 이렇게 하면, 나중에 리스트가 바뀌었을때 동일한 기준으로 처리하지 못한다. 리스트가 백개라면 그거 하나하나 다 처리해주고 있어야 하는가?
아니다
listview.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView> a, View v, int position, long id) { Intent intent = new Intent (getApplicationContext(),Class_review.class); TextView view = (TextView)v.findViewById(R.id.form_id); int s_id = Integer.parseInt(view.getText().toString()); intent.putExtra("unique_id", s_id); startActivity(intent); } });
자 살펴보라. 우리에게는 View v란게 있다.
중요한건 (TextView)로 캐스팅된 v.findViewById로 긁어온 아이디값을 인텐트를 보낼때 같이 보내버리면 되는것이다. 그럼 받는 액티비티 측에서 그 값을 받아서, 디비를 돌리던 뭐하든 올바른 컨텐츠를 생성할수있는것이다
-참조-
ArrayList<>와 동기화시키면 ID가 전혀 필요없고 position 값만 가지고 데이터를 선택할수있다.
항상 ArrayList<>와 같이 쓰도록 한다
[출처] [안드로이드]커스텀 리스트뷰, 클릭시 연결되는 뷰 선택|작성자 관대한 프로그래머
'모바일 > Android' 카테고리의 다른 글
sqlite 에러 (0) | 2016.04.17 |
---|---|
안드로이드 색깔 바꾸기 getColor() 및 DP로 stroke치기 (0) | 2016.04.13 |
안드로이드에서 그림자 및 라운드 효과 내기 (0) | 2016.04.12 |
안드로이드 실제 비율만큼 조정하기 (0) | 2016.04.12 |
연속되는 문자가 오는 그림파일이나 텍스트 순차적으로 불러오기 (0) | 2014.05.08 |