前面说到的关于省市区的是根据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的实现。不做多说。