重写onPickerChangeListener()方法。

解决方案 »

  1.   

    非常感谢楼上回答,用接口实现了。
    public class MyNumberPicker extends LinearLayout{    private Button mDefault;
        private Button mAdd;
        private Button mDel;
        private TextView tvValue;
        private int mValue = 0;    private MyNumPickerListener mNumPickerListener;    public MyNumberPicker(Context context, AttributeSet attrs) {
            super(context, attrs);
            this.setOrientation(HORIZONTAL);        mDefault = new Button(context,attrs);
            mDefault.setText("  +  ");
            mDefault.setTextSize(24);        mAdd = new Button(context,attrs);
            mAdd.setText("  +  ");
            mAdd.setVisibility(GONE);        mDel = new Button(context,attrs);
            mDel.setText("  -  ");
            mDel.setVisibility(GONE);        tvValue = new TextView(context,attrs);
            tvValue.setTextColor(Color.BLACK);
            tvValue.setTextSize(22);
            tvValue.setVisibility(GONE);        addView(mDefault);        addView(mAdd);
            addView(tvValue);
            addView(mDel);        mDefault.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    mValue +=1;
                    tvValue.setText(String.valueOf(mValue));                if (mNumPickerListener != null) {
                        mNumPickerListener.getNumPickerValue(mValue);
                    }                mAdd.setVisibility(VISIBLE);
                    mDel.setVisibility(VISIBLE);
                    tvValue.setVisibility(VISIBLE);                mDefault.setVisibility(GONE);
                }
            });        mAdd.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    mValue +=1;
                    tvValue.setText(String.valueOf(mValue));                if (mNumPickerListener != null) {
                        mNumPickerListener.getNumPickerValue(mValue);
                    }
                }
            });        mDel.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (mValue > 0){
                        mValue -=1;
                        tvValue.setText(String.valueOf(mValue));
                    }
                    if (mValue <= 0){
                        mAdd.setVisibility(GONE);
                        mDel.setVisibility(GONE);
                        tvValue.setVisibility(GONE);                    mDefault.setVisibility(VISIBLE);
                    }                if (mNumPickerListener != null) {
                        mNumPickerListener.getNumPickerValue(mValue);
                    }            }
            });    }    public int getValue(){
            return mValue;
        }    public void setValue(int val){
            mValue = val;
            tvValue.setText(String.valueOf(mValue));        if (mValue <= 0){
                mAdd.setVisibility(GONE);
                mDel.setVisibility(GONE);
                tvValue.setVisibility(GONE);            mDefault.setVisibility(VISIBLE);
            }else{
                mAdd.setVisibility(VISIBLE);
                mDel.setVisibility(VISIBLE);
                tvValue.setVisibility(VISIBLE);            mDefault.setVisibility(GONE);
            }
        }    public void setOnMyNumPickerListener(MyNumPickerListener listener){
            mNumPickerListener = listener;
        }    public  interface MyNumPickerListener {
            public void getNumPickerValue(Integer val);    }}
      

  2.   

    在activity 里面调用控件里写的getValue()返回啊
      

  3.   

    楼主你好,我也有和你一样的需求,就是在FragmentActivity里面调用这个接口时候会报错,想知道你是在调用接口时候如何处理的