OnTimeSet还呼吁解雇TimePickerDialog时 [英] OnTimeSet called also when dismissing TimePickerDialog
问题描述
今天,我试图使用 TimePickerDialog
,但我发现了几个漏洞。
Today I was trying to use the TimePickerDialog
but I noticed a couple of flaws.
- OnTimeSet被调用时也被驳回的对话框(通过点击之外,例如)
- OnTimeSet调用两次当用户点击完成按钮
我正在使用的API为18。
The API I'm using is 18.
任何人都经历了这些问题呢?你是如何解决这些问题?
Anyone else has experienced these problems? How did you solve them?
推荐答案
今天面对完全一样的问题。难道不明白,为什么这是怎么回事,却发现了一个简单的解决方案:
Faced the exact same issue today. Could not figure out why this was happening, but found a simple solution:
方法onTimeSet()被调用一次时被关闭对话框,被称为点击完成按钮时的两倍。无论哪种方式,还有就是onTimeSet 1骚扰呼叫()。所以,我决定总是忽略第一个电话。
Method onTimeSet() is called once when dialog is dismissed and is called twice when Done button is clicked. Either way, there is one unwanted call to onTimeSet(). So I decided to always ignore the first call.
这里的code:
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
TimePickerDialog mTimePicker;
mTimePicker = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener()
{
int callCount = 0; //To track number of calls to onTimeSet()
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute)
{
if(callCount == 1) // On second call
{
timeString = selectedHour + ":" + selectedMinute + ":00";
Log.d("TEST", "Chosen time : "+ timeString);
}
callCount++; // Incrementing call count.
}
}, hour, minute, true);
mTimePicker.setTitle("Pick Time");
mTimePicker.show();
这篇关于OnTimeSet还呼吁解雇TimePickerDialog时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!