之前已经问过这个问题,但是当时的答案似乎不再适用于Android Studio,或者我错过了一些东西。
我希望在按下编辑文本区域时显示timePicker对话框,以在editText中设置时间。但是,出于某种原因,正常键盘在按下时会弹出。我没有收到任何错误,但它似乎仍然无效。
这是代码:
final EditText Edit_Time = (EditText) findViewById(R.id.time_view_edit);
Edit_Time.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
TimePickerDialog mTimePicker;
mTimePicker = new TimePickerDialog(TimeActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
Edit_Time.setText( selectedHour + ":" + selectedMinute);
}
}, hour, minute, true);
mTimePicker.setTitle("Select Time");
mTimePicker.show();
}
});
editText的xml部分:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/time_view_edit"
android:text="20:00"
android:layout_weight="1"/>
如果有人可以提供帮助,那么非常感谢,谢谢!
答案 0 :(得分:4)
将这些属性添加到xml中的EditText
标记以禁用键盘弹出
android:editable="false"
和
android:focusable="false"
<强>更新强>
android:editable="false"
现已弃用。
改为使用android:inputType="none"
或代码:
editText.setEnabled(false);
答案 1 :(得分:0)
这在androidx项目上为我工作。创建showTimePicker
方法。
private void showTimePicker(){
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
TimePickerDialog timePickerDialog = new TimePickerDialog(EditPharmacyActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
}
}, hour, minute, false);
timePickerDialog.show();
}
然后在onCreate
方法中添加以下内容以初始化视图。
etOpenHours.setClickable(true);
etOpenHours.setLongClickable(false);
etOpenHours.setInputType(InputType.TYPE_NULL);
etOpenHours.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showTimePicker();
}
});