数字选择Dialog

自定义Dialog控件

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.Gravity;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.NumberPicker;

/**
 * Author: xiongwenwei@aliyun.com
 * Note:
 * CreatedTime: 2016/10/20 10:28
 */
public class MinutePickerDialog extends AlertDialog implements android.content.DialogInterface.OnClickListener {

    private OnMinuteSelectedListener mListener;
    private NumberPicker mMinutePicker;

    public MinutePickerDialog(final Context context, OnMinuteSelectedListener mListener) {
        super(context);
        this.mListener = mListener;
        setTitle("标题");
        setButton(BUTTON_NEGATIVE, "取消", this);
        setButton(BUTTON_POSITIVE, "确认", this);

        mMinutePicker = new NumberPicker(context);
        mMinutePicker.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
        mMinutePicker.setMinValue(0);
        mMinutePicker.setMaxValue(4);
        final String[] minutes = {"4列","5列","6列","7列","8列"};

        mMinutePicker.setDisplayedValues(minutes);
        LinearLayout layout = new LinearLayout(context);
        layout.setGravity(Gravity.CENTER);
        layout.addView(mMinutePicker, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT));
        setView(layout);
        setCanceledOnTouchOutside(true);
    }

    @Override
    public void onClick(DialogInterface dialog, int which) {
        switch (which) {
            case BUTTON_POSITIVE:
                if (mListener != null) {
                    mMinutePicker.clearFocus();
                    mListener.onMinuteSelected(mMinutePicker, mMinutePicker.getValue());
                }
                break;
        }
    }

    /**
     * The callback interface used to indicate the user is done filling in the
     * time (they clicked on the 'Set' button).
     */
    public interface OnMinuteSelectedListener {
        void onMinuteSelected(NumberPicker view, Object minute);
    }

}
调用:

new MinutePickerDialog(this, new MinutePickerDialog.OnMinuteSelectedListener() {

            @Override
            public void onMinuteSelected(NumberPicker view, Object minute) {
                tvTitle.setText(minute.toString());
            }

        }).show();
效果图:





评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值