private class ViewHolder {
TextView dayofweek;
TextView onTimeset;
TextView hour;
TextView minute;
CheckBox selected;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
Log.v("ConvertView", String.valueOf(position));
myNum =String.valueOf(position);
if (convertView == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.alaramlist_cell, null);
holder = new ViewHolder();
holder.dayofweek = (TextView) convertView.findViewById(R.id.dayofweek);
holder.onTimeset = (TextView) convertView.findViewById(R.id.onTimeset);
holder.hour = (TextView) convertView.findViewById(R.id.hour);
holder.minute = (TextView) convertView.findViewById(R.id.minute);
holder.selected = (CheckBox) convertView
.findViewById(R.id.checkBox1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
AlaramDto alaramDto = alaramList.get(position);
int num = Integer.parseInt(alaramDto.getDayofweek());
int hour = Integer.parseInt(alaramDto.getHour());
int min = Integer.parseInt(alaramDto.getMinute());
holder.dayofweek.setText(dayOfWeekString[num]);
holder.onTimeset.setText(alaramDto.getOnTimeset());
holder.hour.setText(pad(hour));
holder.minute.setText(pad(min));
holder.selected.setChecked(Boolean.valueOf(alaramDto.getSelected()));
holder.selected.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String toPass = (String) v.getTag();
CheckBox cb = (CheckBox) v;
Toast.makeText(getApplicationContext(),"체크박스 번호는? : "+ cb.getTag() , Toast.LENGTH_LONG).show();
}
});
return convertView;
}
}
안녕하세요 위에와 같이 사용중입니다.
리스트뷰에 체크박스를 구현하였습니다.
전체터치를 했을때는 설정페이지로 넘어가고 체크박스를 클릭했을때는 상태값을 바꿔서 디비에 저장시켜야합니다.
위에 있는 방법으로 구현하면 태그값이 NULL로 나옵니다.
몇번째 체크박스를 체크했는지 찾고 거기에 대한 상태값을 저장해야하는대
null로 나와서 몇번째 체크박스를 선택햇는지 알수 없어서 질문드립니다!!
도움 부탁드리겠습니다.