private class ListAdapter extends BaseAdapter {
LayoutInflater inflater;
ViewHolder viewHolder;
public ListAdapter(Context context) {
inflater = LayoutInflater.from(context);
}
public int getCount() {
// TODO Auto-generated method stub
return _categoryList.size();
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
public long getItemId(int position) {
// TODO Auto-generated method stubvalues[i].split("||")[1]
return position;
}
public View getView(final int position, View convertView,
ViewGroup parent) {
convertView = inflater.inflate(R.layout.filter_row, null);
viewHolder = new ViewHolder();
viewHolder.category_list_id = (RelativeLayout) convertView
.findViewById(R.id.filter_list_id);
viewHolder.att_name = (TextView) convertView
.findViewById(R.id.filter_name);
viewHolder.txtspnames = (TextView) convertView
.findViewById(R.id.spinner_filter);
viewHolder.lv = (LinearLayout) convertView
.findViewById(R.id.filter_list_id_ch);
viewHolder.lv.setVisibility(View.GONE); <<<<<<<<<<<<<<<---------- LinearLayout which display checkboxes
// convertView.setTag(viewHolder);
// } else {
// viewHolder = (ViewHolder) convertView.getTag();
// }
viewHolder.category_list_id
.setBackgroundResource(R.drawable.listrowconfirm21
+ Integer.parseInt(_ID));
if (_categoryList.get(position).attrib_name.equals("Brands")) { <<<<<<<<<--------- i want to handle click event for this perticular listitem
viewHolder.att_name
.setText(_categoryList.get(position).attrib_name);
viewHolder.lv.setBackgroundResource(R.drawable.listrowconfirm21
+ Integer.parseInt(_ID));
final String values[];
values = _categoryList.get(position).values.split("^");
// String[] data = new String[values.length];
for (int i = 0; i < values.length; i++) {
final FilterItem current_row = _categoryList.get(position);
final CheckBox ch = new CheckBox(getApplicationContext());
ch.setText(values[i].split("||")[1]);
ch.setTextSize(18);
ch.setGravity(Gravity.LEFT);
// ch.setMaxWidth(25);
ch.setLayoutParams(new LinearLayout.LayoutParams(120,
LayoutParams.WRAP_CONTENT));
ch.setChecked(_categoryList.get(position).charray[i]);
final int ch_i = i;
ch.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (ch.isChecked()) {
_categoryList.get(position).charray[ch_i] = true;
_categoryList.get(position).ch = true;
_categoryList.get(position).checkbox_id
.add(values[ch_i].split("||")[0]);
} else {
_categoryList.get(position).charray[ch_i] = false;
_categoryList.get(position).ch = false;
_categoryList.get(position).checkbox_id
.remove(_categoryList.get(position).checkbox_id
.indexOf(values[ch_i]
.split("||")[0]));
}
}
});
if (ch.getText().toString().equals(current_row.checked)) {
ch.setChecked(true);
}
viewHolder.lv.addView(ch);
}
} else {
viewHolder.att_name
.setText(_categoryList.get(position).attrib_name);
viewHolder.txtspnames
.setText(_categoryList.get(position).selected);
convertView.setTag(position + "");
}
return convertView;
}
}Add a code snippet to your website: www.paste.org