android_实例_利用radiobutton实现分类筛选,Android_实例_利用RadioButton实现分类筛选...

/** * CategoryView.java * @author zimo2013 * @see http://blog.csdn.net/zimo2013 * */public class CategoryView extends LinearLayout implementsOnCheckedChangeListener {

private LayoutInflater inflater;

public CategoryView(Context context) {

this(context, null);

}

public CategoryView(Context context, AttributeSet attrs) {

super(context, attrs);

inflater = LayoutInflater.from(context);

}

/**添加方法*/public void add(Listlist) {

if (list.size() > 0) {

//加载布局View view = inflater.inflate(R.layout.category_container, null);

addView(view);

RadioGroup radioGroup = (RadioGroup) view.findViewById(R.id.container);

RadioButton bt = newRadioButton(全部);

radioGroup.addView(bt);

// 默认选中radioGroup.check(bt.getId());

// 全部for (String str : list) {

bt = newRadioButton(str);

//实例化新的RadioButtonradioGroup.addView(bt);

}

//为当前RadioGroup设置监听器radioGroup.setOnCheckedChangeListener(this);

}

}

/**创建RadioButton*/private RadioButton newRadioButton(String text) {

RadioButton button = new RadioButton(getContext());

RadioGroup.LayoutParams params = new RadioGroup.LayoutParams(RadioGroup.LayoutParams.WRAP_CONTENT,RadioGroup.LayoutParams.WRAP_CONTENT);

//设置内外边距params.leftMargin = 6;

params.rightMargin = 6;

button.setLayoutParams(params);

button.setPadding(4, 0, 4, 0);

//设置背景button.setBackgroundResource(R.drawable.selector_category_bg);

//去掉左侧默认的圆点button.setButtonDrawable(android.R.color.transparent);

//设置不同状态下文字颜色,通过ColorStateList,对应的selector放在res/color文件目录中,否则没有效果button.setTextColor(getResources().getColorStateList(R.color.selector_category_text));

button.setGravity(Gravity.CENTER);

button.setText(text);

return button;

}

@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {

if(mListener != null){

mListener.click(group, checkedId);

}

}

/**指定监听器*/public void setOnClickCategoryListener(OnClickCategoryListener l){

mListener = l;

}

private OnClickCategoryListener mListener;

/**回掉接口*/public interface OnClickCategoryListener{

/**点击事件发生*/public void click(RadioGroup group, int checkedId);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值