自定义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();
效果图: