目前正试图从时间选择器提醒器中获取两个不同的值,即selectedHour和reminderMin,这是selectedMin。我以为我工作得很好,但今天早上发现了另一个错误。
eReminderTime.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(AddPayment.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
reminderHour = selectedHour;
reminderMin = selectedMinute;
if (selectedHour < 10)
{
if(selectedMinute == 0)
{
eReminderTime.setText("0" + selectedHour + ":00" + selectedMinute);
}
else if(selectedMinute < 10)
{
eReminderTime.setText("0" + selectedHour + ":0" + selectedMinute);
}
else
{
eReminderTime.setText("0" + selectedHour + ":" + selectedMinute);
}
}
if (selectedHour == 0)
{
if(selectedMinute == 0)
{
eReminderTime.setText("0" + selectedHour + ":00" + selectedMinute);
}
else if(selectedMinute < 10)
{
eReminderTime.setText("0" + selectedHour + ":0" + selectedMinute);
}
else
{
eReminderTime.setText("0" + selectedHour + ":" + selectedMinute);
}
}
if(selectedMinute == 0)
{
eReminderTime.setText("" + selectedHour + ":00" + selectedMinute);
}
if(selectedMinute < 10)
{
eReminderTime.setText("" + selectedHour + ":0" + selectedMinute);
}
else
{
eReminderTime.setText( "" + selectedHour + ":" + selectedMinute);
}
}
}, hour, minute, true);
mTimePicker.setTitle("Select Time");
mTimePicker.show();
}
});
这是我的时间选择器的代码。我不希望时间一起加入,因为我需要将小时值与分钟值分开存储。
我试过查找SimpleDateFormat,但我无法让它工作。这是我试过的代码
SimpleDateFormat simpleHour = new SimpleDateFormat("kk");
SimpleDateFormat simpleMin = new SimpleDateFormat("mm");
formatHour = simpleHour.format(selectedHour);
formatMin = simpleMin.format(selectedMinute);
reminderHour = Integer.parseInt(formatHour);
reminderMin = Integer.parseInt(formatMin);
Toast.makeText(getApplicationContext(), formatHour, 0).show();
Toast.makeText(getApplicationContext(), formatHour, 0).show();
答案 0 :(得分:0)
这是因为个人 hh 和 mm 不是有效格式。尝试将分钟和小时值组合在一起,当您收到组合值时,请通过split()
e.g;
SimpleDateFormat simpleHour= new SimpleDateFormat("hh:mm");
String strTime = sdf.format(new Date());
String[] pieces=strTime.split(":");
Log.i("Hour: ",pieces[0]);
Log.i("Miniute: ",pieces[1]);
答案 1 :(得分:0)
您想要什么输出? 如果它只是:
01:32
然后自己生成一个字符串很简单,而不是担心日期格式等。
//Add leading zeros if required
String hours = (String) ((selectedHour < 10) ? "0" + selectedHour
: Integer.toString(selectedHour));
String minutes = (String) ((selectedMinute < 10) ? "0" + selectedMinute
: Integer.toString(selectedMinute));
String prettyTime = hours + ":" + minutes;