Android WheelView自定义续更

前面说到的关于省市区的是根据xml解析以后然后获取的值,这里我们说一下自定义的一些值,比如性别。

性别只分为男,女,保密。

实现后的效果如下:


因此,我们同样的要先

protected String[] sex = {"男", "女", "保密"};
该值我们自己设定即可。然后当前性别的一个mSexName。

/**
 * 当前性别
 * */
protected String mSexName;

说的这些都是基于之前的基础上的,所以只是对此进行大致的不同的地方的记载。

case R.id.rela3:
    View contentview = LayoutInflater.from(this).inflate(R.layout.activity_sex_wheel, null);
    pw = new PopupWindow(contentview, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT, true);
    mViewSex = (WheelView) contentview.findViewById(R.id.id_sex);
    btn_ok = (Button) contentview.findViewById(R.id.btn_ok);
    btn_ok.setOnClickListener(this);
    //wheelView没有changing的时候,我们要对mSexName进行一个定义。
    int pCurrent = mViewSex.getCurrentItem();
    mSexName = sex[pCurrent];
    mViewSex.addChangingListener(new OnWheelChangedListener() {
        @Override
        public void onChanged(WheelView wheel, int oldValue, int newValue) {
            mSexName = sex[mViewSex.getCurrentItem()];
        }
    });
    mViewSex.setViewAdapter(new ArrayWheelAdapter<String>(EditInfoActivity.this, sex));
    mViewSex.setVisibleItems(7);
    pw.showAtLocation(EditInfoActivity.this.findViewById(R.id.info_edit), Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);
    break;
上述这段代码,跟之前的基本没什么区别,就是需要注意的onChanged的触发条件,如果我们没有对wheelView进行滑动的话,是不会触发这个监听的,所以下面的值也是不会被传过来的,因此,我们要将没有触发监听的特殊情况,也就是什么都不选择的默认情况,进行一个重新的定义。上面代码已经实现。pw这个还是PopUpWindow的实现。不做多说。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值