计时器选择器getCurrentHour()和getCurrentMinute()在Android中不工作
我按照本教程创建了一个时间选择器,然后创建了第二个,并试图比较两者之间的差异。 我有以下方法,由于某种原因,getCurrentHour()和getCurrentMinute()无法工作,即使它们已作为公共方法导入。 以下是我的方法:计时器选择器getCurrentHour()和getCurrentMinute()在Android中不工作,android,timepicker,Android,Timepicker,我按照本教程创建了一个时间选择器,然后创建了第二个,并试图比较两者之间的差异。 我有以下方法,由于某种原因,getCurrentHour()和getCurrentMinute()无法工作,即使它们已作为公共方法导入。 以下是我的方法: private void calcShiftLength() { int difHour = mTimeDisplayEnd.getCurrentHour() -mTimeDisplay.getCurrentHour(); int difMin = mTimeDi
private void calcShiftLength() {
int difHour = mTimeDisplayEnd.getCurrentHour() -mTimeDisplay.getCurrentHour();
int difMin = mTimeDisplayEnd.getCurrentMinute() - mTimeDisplay.getCurrentMinute();
mShiftLength.setText(new StringBuilder().append(difHour).append(":").append(difMin));
}
我得到以下错误代码“类型TextView的getCurrentHour()方法未定义”
谢谢你的帮助。
编辑:我意识到有些方法是为了测试错误而设置的,我理解这个问题,只是不确定如何解决它。
下面是我的计时器使用的示例:
private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHour = hourOfDay;
mMinute = minute;
updateDisplay();
}
};
private TimePickerDialog.OnTimeSetListener mTimeSetListenerEnd = new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view2, int hourOfDay, int minute) {
mHour = hourOfDay;
mMinute = minute;
updateDisplayEnd();
}
};
编辑2:以下是我的声明:
private TextView mShiftLength;
private TextView mTimeDisplay;
private Button mPickTime;
private TextView mTimeDisplayEnd;
private Button mPickTimeEnd;
private int mHour;
private int mMinute;
static final int TIME_DIALOG_ID = 0;
static final int TIME_DIALOG_IDEND = TIME_DIALOG_ID + 1;
编辑3:下面的代码旨在将小时数转换为整数,然后将它们去掉以计算差值。我将在24小时后工作,我只想让它暂时工作。无论如何,现在它正在破坏我的应用程序:
private void calcShiftLength() {
int startTime = Integer.parseInt(mTimeDisplay.getText().toString());
int endTime = Integer.parseInt(mTimeDisplayEnd.getText().toString());
int shiftLength = endTime - startTime;
mShiftLength.setText(new StringBuilder().append(shiftLength));
}
getCurrentHour()
方法只能与小部件类型TimePicker
一起使用。请确认您使用的小部件是否正确。错误清楚地表明您正在尝试使用TextView
访问它。我编辑它是为了显示更多信息,但我仍然需要帮助,因为我理解错误只是不知道如何修复它。请显示mTimeDisplayEnd和mTimeDisplayEnd的声明。mTimeDisplayEnd和mTimeDisplay被声明为TextView,因此getCurrentHour()和getCurrentMinute()方法将不起作用。这些仅用于计时器选择器控制。相反,您可以使用mTimeDisplayEnd.getText()、mTimeDisplay.getText()并将其转换为整数。这应该适用于您。我知道它们是TextView数据成员,但如果我将它们更改为整数,那么在比较AM时间和PM时间时,它将无法正常工作,不是吗?我不是要求将它们更改为整数。您唯一能做的就是使用getText()方法从textview获取值,并将该值转换为整数。该值可用于计算。