编辑文本中的日期选择器-这段代码有什么问题?

dnph8jn4  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(272)

我试着运行它,但是“编辑文本”视图在单击时没有响应。日期选择器甚至没有打开。这里怎么了?
请帮我一个详细的答案连同完整的代码,因为我是一个新手。谢谢
xml格式

<EditText
    android:id="@+id/add_date"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="32dp"
    android:layout_marginLeft="32dp"
    android:layout_marginTop="16dp"
    android:ems="10"
    android:hint="Enter Date"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/add" />

主要活动

public class addScreen extends AppCompatActivity {

EditText dateFormat;
int year, month, day;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.add_screen);

    {
        dateFormat = findViewById(R.id.add_date);
        final Calendar calendar = Calendar.getInstance();
        dateFormat.setOnClickListener(v -> {
            year = calendar.get(Calendar.YEAR);
            month = calendar.get(Calendar.MONTH);
            day = calendar.get(Calendar.DAY_OF_MONTH);
            DatePickerDialog datePickerDialog = new DatePickerDialog(addScreen.this, (view, year, month, dayOfMonth) -> dateFormat.setText(SimpleDateFormat.getDateInstance().format(calendar.getTime())), year, month, day);
            datePickerDialog.show();
        });
    }
}

}

c90pui9n

c90pui9n1#

正如benp在上面的评论中所说,edittext在默认情况下是可聚焦的。
因此,如果您不想让它显示在键盘上,而只想监听click侦听器,那么您可能需要停止下面这一行的焦点,这样就可以在xml中添加edittext声明

android:focusable="false"

这就是你的编辑文本现在可以收听你的点击收听。
p、 我建议你使用textinputlayout和textInputItemText这两种材料,它们有很好的外观,在创建和输入字段时遵循现代用户体验,并将其显示给你的用户。

相关问题