Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计时器选择器getCurrentHour()和getCurrentMinute()在Android中不工作_Android_Timepicker - Fatal编程技术网

计时器选择器getCurrentHour()和getCurrentMinute()在Android中不工作

计时器选择器getCurrentHour()和getCurrentMinute()在Android中不工作,android,timepicker,Android,Timepicker,我按照本教程创建了一个时间选择器,然后创建了第二个,并试图比较两者之间的差异。 我有以下方法,由于某种原因,getCurrentHour()和getCurrentMinute()无法工作,即使它们已作为公共方法导入。 以下是我的方法: private void calcShiftLength() { int difHour = mTimeDisplayEnd.getCurrentHour() -mTimeDisplay.getCurrentHour(); int difMin = mTimeDi

我按照本教程创建了一个时间选择器,然后创建了第二个,并试图比较两者之间的差异。 我有以下方法,由于某种原因,getCurrentHour()和getCurrentMinute()无法工作,即使它们已作为公共方法导入。 以下是我的方法:

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获取值,并将该值转换为整数。该值可用于计算。