实现效果如图,文字描述如下:

点击 EditText 后, 不弹出虚拟键盘, 而是弹出日期选择器;

实现方法:

  1. 禁止弹出虚拟键盘: 添加
android:inputType="none"

EditText.setInputType(InputType.TYPE_NULL);
  1. 点击时弹出日期选择器:
//针对非聚焦状态下点击EditText
EditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            showDialog(自定义 DatePickerDialog  ID);
        }
    }
});

//针对聚焦状态下点击EditText
EditText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        showDialog(自定义 DatePickerDialog  ID);
    }
});

注意:

  1. 如果要保证聚焦状态下禁止弹出软键盘, 必须加上
EditText.setInputType(InputType.TYPE_NULL);