Java 如果日期选择器位于AlertDialog内,则它不显示在EditText上单击
下面是我的Java代码:Java 如果日期选择器位于AlertDialog内,则它不显示在EditText上单击,java,android,android-layout,Java,Android,Android Layout,下面是我的Java代码: AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getContext()); alertDialogBuilder.setView(promptView); alertDialogBuilder.setCancelable(false) .setPositiveButton(R.string.add, new DialogInterface.OnClickListener(
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getContext());
alertDialogBuilder.setView(promptView);
alertDialogBuilder.setCancelable(false)
.setPositiveButton(R.string.add, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
final EditText etDate = promptView.findViewById(R.id.etDate);
etDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Calendar c = Calendar.getInstance();
DatePickerDialog dpd = new DatePickerDialog(getContext(),
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
etDate.setText(dayOfMonth + "-"
+ (monthOfYear + 1) + "-" + year);
}
}, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DATE));
dpd.show();
}
});
}
});
AlertDialog alert = alertDialogBuilder.create();
alert.show();
以下etDate
:
<EditText
android:id="@+id/etDate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Date"
android:focusable="false"
android:inputType="date" />
如果你点击编辑文本,绝对不会发生任何事情。请注意,编辑文本在AlertDialog中,所有内容都在片段中。您需要在创建对话框期间设置
OnClick
,而不是单击正按钮
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getContext());
alertDialogBuilder.setView(promptView);
alertDialogBuilder.setCancelable(false);
final EditText etDate = promptView.findViewById(R.id.etDate);
etDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Calendar c = Calendar.getInstance();
DatePickerDialog dpd = new DatePickerDialog(getContext(),
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
etDate.setText(dayOfMonth + "-"
+ (monthOfYear + 1) + "-" + year);
}
}, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DATE));
dpd.show();
}
});
alertDialogBuilder.setPositiveButton(R.string.add, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = alertDialogBuilder.create();
alert.show();