custom adapter를 만들어서
// Adapter Class
class GroupListAdapter extends BaseAdapter {
Context maincon;
LayoutInflater inflater;
ArrayList<GrpItem> GrpSrc;
int layout;
public GroupListAdapter(Context context, int alayout, ArrayList<GrpItem> aarSrc) {
maincon = context;
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
GrpSrc = aarSrc;
layout = alayout;
}
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
if(convertView == null) {
convertView = inflater.inflate(layout, parent, false);
}
// 이미지 셋팅
ImageView img = (ImageView)convertView.findViewById(R.id.img);
img.setImageResource(GrpSrc.get(position).icon);
// 텍스트 셋팅
TextView txt = (TextView)convertView.findViewById(R.id.text);
txt.setText(GrpSrc.get(position).grp_name);
// 버튼 셋팅
Button btn = (Button)convertView.findViewById(R.id.btn);
return convertView;
}
public int getCount() {
// TODO Auto-generated method stub
return GrpSrc.size();
}
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return GrpSrc.get(arg0).grp_name;
}
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
}
요렇게 만들어 놨습니다. 근데 저는 Button을 눌렀을때와 list를 클릭했을때 이벤트를 다르게 주고 싶습니다.
public ..onclick으로 주면 되긴 하지만 저는
AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() { //여기서
주고 싶습니다.
방법이 없을까요?
그럼 현명하신 분들의 답변 기다리겠습니다.
답글 감사드립니다.
그리고 한번만 더 현명하신 답변 부탁드립니다.
그럼 onClick이벤트시 아이템이 선택이 되어 있는지 선택된 item백그라운드를 변경 할려면 어떻게 해야 할가요?..
기다리겠습니다..감사합니다.




버튼은 버튼이고 아이템은 아이템이죠....
버튼에 별개의 이벤트를 주고 싶다면 버튼을 추가하는 부분에 이벤트 리스너가 붙는게 당연한 일이겠죠...
아이템은 OnItemClick 으로 하는거구요...
OnItemClick 일때 만약 버튼이 추가된다던가 한다면
view.findViewById(id) 이런식으로 버튼을 찾아서 이벤트리스너를 등록해서 쓰시면 되겠죠...
다만 onItemClickListener 에서만 리스너를 등록하면 당연하겠지만
아이템을 한번이라도 클릭해야 버튼이 이벤트를 수행하겠죠.... 이건 원하시는바가 안될거 같은데요...