우선 소스입니다.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int i = position;
if(convertView == null){
convertView = inflater.inflate(mListLayout, parent, false);
}
//mTitles.length
RelativeLayout RL = (RelativeLayout)convertView.findViewById(R.id.RL_RoomsLayout);
RL.setOnClickListener(TitlesLayoutClickListener);
RL.setTag(i);
CheckBox CB_Check = (CheckBox)convertView.findViewById(R.id.CB_RoomCheck);
CB_Check.setChecked(false);
return convertView;
}
View.OnClickListener TitlesLayoutClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
int i = (Integer) v.getTag();
if(mRoom.get(i).isChecked()){
mRoom.get(i).setChecked(true);
((CheckBox) (v.findViewById(R.id.CB_Check))).setChecked(true);
}else{
mRoom.get(i).setChecked(false);
((CheckBox) (v.findViewById(R.id.CB_Check))).setChecked(false);
}
}
};
----------------xml
RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#000000"
android:padding="5dip"
android:id="@+id/RL_RoomsLayout">
<TextView android:id="@+id/TV_RoomName" android:layout_height="wrap_content"/>
<CheckBox android:id="@+id/CB_RoomCheck" android:checked="true"
android:layout_height="34.6666666666dip" android:layout_width="34.6666666666dip"/>
</RelativeLayout>
BaseAdapter안의 getView에서 Row에 해당되는 Xml을 사용하는데요.
그 Xml에 담긴 Checkbox가 리스트에 쭉~ 출력이 되구요...
문제는 onclick리스너에서 View의 v.findviewbyID가 널값입니다..((CheckBox) (v.findViewById(R.id.CB_Check))).setChecked(true);)
각각의 로우 하나에 해당되는 checkbox를 가져와서 check를 해주고 싶은데 어떤 방법이 필요할까요?




CheckBox는 convertView의 자식놈인데
RL에 onClickListener 달려있는 상태에서 onClick 하게 되면.
v는 RL 이 되죠...
거기서 v.findview.... 해봐야...
CheckBox는 RL 의 자식놈이 아니라 그래 보입니다만...