我用TimePickerDialog的onTimeSet()方法.我添加了一个cancel按钮onClickListener.
我的问题是,当我单击cancel按钮时,会调用onTimeSet()方法.为什么?有什么方法可以解决这个问题?
// Create timePicker and set listener
timeListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
};
timePicker = new TimePickerDialog(RS_CreateTripActivity.this,
timeListener, hour, min, false);
timePicker.setCanceledOnTouchOutside(false);
timePicker.setCancelable(false);
// Set negative button click listener
timePicker.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
datePicker.dismiss();
}
});
Run Code Online (Sandbox Code Playgroud)
我尝试通过设置positive按钮,onClickListener但在那种情况下,我无法用户选择时间.如果有人告诉我如何获得时间onClickListener,那么它也将解决我的问题.
我的问题是如何比较startTime和endTime之间的两个时间,
比较两次.
我正在使用TimePickerDialogfor fetching时间,我正在使用一个方法传递参数,如long for startTime和endTime,我这样使用,
//Method:
boolean isTimeAfter(long startTime, long endTime) {
if (endTime < startTime) {
return false;
} else {
return true;
}
}
String strStartTime = edtStartTime.getText().toString();
String strEndTime = edtEndTime.getText().toString();
long lStartTime = Long.valueOf(strStartTime);
long lEndTime = Long.valueOf(strEndTime);
if (isTimeAfter(lStartTime, lEndTime)) {
} else {
}
Run Code Online (Sandbox Code Playgroud)
得到错误:
java.lang.NumberFormatException: Invalid long: "10:52"
Run Code Online (Sandbox Code Playgroud)
如何比较两次.请建议我.
我想在棒棒糖设备中显示较旧的时间选择器(如前棒棒糖设备时间选择器).这可能吗?
这是我的代码.请解释如何使用时间选择器对话框禁用过去的时间,并给出一些代码如何在此代码中禁用过去的时间以及如何使用android时间选择器对话框应用它.时间选择器对话框类没有任何setMinTime方法以及如何获取它.
time.setOnClickListener(new 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(
FillServiceDetailActivity.this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker,
int selectedHour, int selectedMinute) {
String AM_PM;
int hour;
String[] sp=currentTime.split(":");
int hour1=Integer.parseInt(sp[0]);
int min1=Integer.parseInt(sp[1]);
//Toast.makeText(FillServiceDetailActivity.this,"selected hour:\t"+String.valueOf(selectedHour),Toast.LENGTH_LONG).show();
String timeSet = "";
if (selectedHour > 12 && hour1>12) {
selectedHour -= 12;
hour1-=12;
timeSet = "PM";
} else if …Run Code Online (Sandbox Code Playgroud) 我正在制作一个简单的闹钟应用,要研究BroadcastReceivers,问题getHours() and getMinutes()仅适用于API 23.
这是我的示例代码: AlarmActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarm);
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
setWidgets();
Intent intent = new Intent(this.context, AlarmReceivers.class);
}
public void setWidgets(){
timePicker = (TimePicker) findViewById(R.id.timePicker);
//Calendar calendar = Calendar.getInstance();
buttonSetAlarm = (Button) findViewById(R.id.buttonSetAlarm);
buttonSetAlarm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int getHour = timePicker.getHour();
int getMinute = timePicker.getMinute();
calendar.set(Calendar.HOUR_OF_DAY,timePicker.getHour());
calendar.set(java.util.Calendar.MINUTE, timePicker.getMinute());
if (getHour > 12){
int twelve = getHour - 12;
}
if (getMinute …Run Code Online (Sandbox Code Playgroud) android broadcastreceiver android-alarms android-calendar android-timepicker
I have a timepicker, everything works well but the problem is that I can't make it look like designer wants. For now it looks like this:
I need to hide this keyboard icon under the buttons. How can I do it? It's just a prototype, so here's only its xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:tag="ww">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Time"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TimePicker
android:id="@+id/timePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:amPmBackgroundColor="#6400AA"
android:numbersSelectorColor="#6400AA" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:orientation="horizontal">
<Button
android:id="@+id/button2" …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,用户选择日期和时间(使用DatePicker和TimePicker).有没有办法将所有值组合成一个整数?DatePicker和TimePicker都返回整数,如果我将它们加起来,那么值是选定的日期和时间,还是需要以其他方式完成?
我一直在理解日期和时间的方式,它是从某一点给出了毫秒的差异.基于此,我猜想将数量加在一起会得到正确的时间(考虑到各种方法的不同开始时间).
谢谢!
如何使用材料选择时间:1.3.0-alpha01,我正在寻找以下屏幕截图的时间选择器,这是我在材料io中找到的。
物料日期选择器
//Creating a MaterialDatePicker.Builder instance that gives us a single date selector.
val builder : MaterialDatePicker.Builder<*> = MaterialDatePicker.Builder.datePicker() // 1
//Building-up the MaterialDatePicker by calling a builder.build function
val picker : MaterialDatePicker<*> = builder.build() // 2
//Display the Material Date Picker.
picker.show(requireActivity().supportFragmentManager, picker.toString()) // 3
Run Code Online (Sandbox Code Playgroud)
简单的时间选择器
val cal = Calendar.getInstance()
val timeSetListener = TimePickerDialog.OnTimeSetListener { _, hour, minute ->
cal.set(Calendar.HOUR_OF_DAY, hour)
cal.set(Calendar.MINUTE, minute)
//textView.text = SimpleDateFormat("HH:mm").format(cal.time)
}
val time = TimePickerDialog(context, timeSetListener, cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), true)
time.setTitle("")
time.show()
Run Code Online (Sandbox Code Playgroud) android kotlin android-timepicker material-design material-components-android
我试图限制日期和时间.我希望如果用户尝试将日期设置为小于当前日期,那么它应该显示警报,同样的事情是按时完成.我使用的日期和时间选择和我onDateSetListener和onTimeSetListener情况如下:
DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
dateTime.set(Calendar.YEAR, year);
dateTime.set(Calendar.MONTH, monthOfYear);
dateTime.set(Calendar.DAY_OF_MONTH, dayOfMonth);
update_date_display();
// ---for setting notification----
day = dayOfMonth;
month = monthOfYear;
AddEditTask.year = year;
c.set(year, month, day);
}
};
protected void update_date_display() {
et_task_date.setText(formatDate.format(dateTime.getTime()));
}
TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
dateTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
dateTime.set(Calendar.MINUTE, minute);
update_time_display();
// ---for setting notification---
hour …Run Code Online (Sandbox Code Playgroud) 有什么办法去除AM/PM的Time Picker Widget?
我在我的应用程序中有这个功能,但它的目的是只选择不包括上午/下午的小时和分钟,我试过setIs24HourView(true)但它使时间24小时,我只需要12小时.