@Override public View getView(int position, View convertView, ViewGroup parent) { CompoundButton v = (CompoundButton)convertView; if(v == null) { if(mMode == MODE_MULTI_ITEMS){ v = new CheckBox(parent.getContext()); v.applyStyle(mCheckBoxStyle); } else{ v = new RadioButton(parent.getContext()); v.applyStyle(mRadioButtonStyle); } if(mItemHeight != ViewGroup.LayoutParams.WRAP_CONTENT) v.setMinHeight(mItemHeight); v.setGravity(Gravity.START | Gravity.CENTER_VERTICAL); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) v.setTextDirection(((InternalListView)parent).isLayoutRtl() ? View.TEXT_DIRECTION_RTL : View.TEXT_DIRECTION_LTR); v.setTextAppearance(v.getContext(), mItemTextAppearance); v.setCompoundDrawablePadding(mContentPadding); } v.setTag(position); v.setText(mItems[position]); if(v instanceof CheckBox) ((CheckBox) v).setCheckedImmediately(mSelected[position]); else ((RadioButton) v).setCheckedImmediately(mSelected[position]); v.setOnCheckedChangeListener(this); return v; }