모바일/Android

커스텀 리스트뷰, 클릭시 연결되는 뷰 선택

늘근이 2014. 5. 8. 08:15

이놈의 안드로이드 책은 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<>와 같이 쓰도록 한다