Android WheelView自定义续更

来源:互联网 发布:错生网络剧百度云 编辑:程序博客网 时间:2024/06/03 23:44

前面说到的关于省市区的是根据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