Android 在每个文本视图中显示相同时间的时间选择器

Android 在每个文本视图中显示相同时间的时间选择器,android,dialog,timepicker,android-timepicker,Android,Dialog,Timepicker,Android Timepicker,我正在开发一个模块,我必须允许用户在不同的文本视图中设置3个不同的时间,因为我正在使用时间选择器 但每当我在TimePicker中选择时间,它就会在其他两个文本视图中显示相同的时间 那么原因是什么呢 private String textViewTime1, textViewTime2, textViewTime3; private String mTime1, mTime2, mTime3; // On clicking Time picker public void setTime

我正在开发一个模块,我必须允许用户在不同的文本视图中设置3个不同的时间,因为我正在使用时间选择器

但每当我在TimePicker中选择时间,它就会在其他两个文本视图中显示相同的时间

那么原因是什么呢

private String textViewTime1, textViewTime2, textViewTime3;
private String mTime1, mTime2, mTime3;

// On clicking Time picker
    public void setTime(View v){
        Calendar now = Calendar.getInstance();
        TimePickerDialog tpd = TimePickerDialog.newInstance(
                this,
                now.get(Calendar.HOUR_OF_DAY),
                now.get(Calendar.MINUTE),
                false
        );
        tpd.setThemeDark(false);
        tpd.show(getFragmentManager(), "Timepickerdialog");
    }

// Obtain time from time picker
    @Override
    public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute) {
        mHour = hourOfDay;
        mMinute = minute;
        if (minute < 10) {
            mTime1 = hourOfDay + ":" + "0" + minute;
            mTime2 = hourOfDay + ":" + "0" + minute;
            mTime3 = hourOfDay + ":" + "0" + minute;
        } else {
            mTime1 = hourOfDay + ":" + minute;
            mTime2 = hourOfDay + ":" + minute;
            mTime3 = hourOfDay + ":" + minute;
        }
        textViewTime1.setText(mTime1);
        textViewTime2.setText(mTime2);
        textViewTime3.setText(mTime3);
    }
私有字符串textViewTime1、textViewTime2、textViewTime3;
私有字符串mTime1、mTime2、mTime3;
//单击时间选择器
公共无效设置时间(视图v){
Calendar now=Calendar.getInstance();
TimePickerDialog tpd=TimePickerDialog.newInstance(
这
现在。获取(日历。一天中的小时),
现在。获取(日历。分钟),
假的
);
tpd.设置主题标记(假);
show(getFragmentManager(),“Timepickerdialog”);
}
//从时间选择器获取时间
@凌驾
时间集上的公共无效(RadialPickerLayout视图,整数小时日,整数分钟){
mHour=小时/天;
mMinute=分钟;
如果(分钟<10){
mTime1=hourOfDay+“:”+“0”+分钟;
mTime2=hourOfDay+“:”+“0”+分钟;
mTime3=小时天数+“:”+“0”+分钟;
}否则{
mTime1=小时天数+“:”+分钟;
mTime2=小时天数+“:”+分钟;
mTime3=小时天数+“:”+分钟;
}
textViewTime1.setText(mTime1);
textViewTime2.setText(mTime2);
textViewTime3.setText(mTime3);
}
但每当我在计时器选择器中选择时间时,它都会在其他计时器中显示相同的时间 两个文本视图

因为您同时设置了它们

@Override
    public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute) {
        mHour = hourOfDay;
        mMinute = minute;
        if (minute < 10) {
            /// Time set to mTime1
            mTime1 = hourOfDay + ":" + "0" + minute;
            /// Time set to mTime2 same
            mTime2 = hourOfDay + ":" + "0" + minute;
            /// Time set to mTime3 same
            mTime3 = hourOfDay + ":" + "0" + minute;
        } else {
            /// Time set to mTime1
            mTime1 = hourOfDay + ":" + minute;
            /// Time set to mTime2 same
            mTime2 = hourOfDay + ":" + minute;
            /// Time set to mTime3 same
            mTime3 = hourOfDay + ":" + minute;
        }
        textViewTime1.setText(mTime1);
        textViewTime2.setText(mTime2);
        textViewTime3.setText(mTime3);
    }
@覆盖
时间集上的公共无效(RadialPickerLayout视图,整数小时日,整数分钟){
mHour=小时/天;
mMinute=分钟;
如果(分钟<10){
///时间设置为mTime1
mTime1=hourOfDay+“:”+“0”+分钟;
///时间设置为mTime2相同
mTime2=hourOfDay+“:”+“0”+分钟;
///时间设置为mTime3相同
mTime3=小时天数+“:”+“0”+分钟;
}否则{
///时间设置为mTime1
mTime1=小时天数+“:”+分钟;
///时间设置为mTime2相同
mTime2=小时天数+“:”+分钟;
///时间设置为mTime3相同
mTime3=小时天数+“:”+分钟;
}
textViewTime1.setText(mTime1);
textViewTime2.setText(mTime2);
textViewTime3.setText(mTime3);
}
但每当我在计时器选择器中选择时间时,它都会在其他计时器中显示相同的时间 两个文本视图

因为您同时设置了它们

@Override
    public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute) {
        mHour = hourOfDay;
        mMinute = minute;
        if (minute < 10) {
            /// Time set to mTime1
            mTime1 = hourOfDay + ":" + "0" + minute;
            /// Time set to mTime2 same
            mTime2 = hourOfDay + ":" + "0" + minute;
            /// Time set to mTime3 same
            mTime3 = hourOfDay + ":" + "0" + minute;
        } else {
            /// Time set to mTime1
            mTime1 = hourOfDay + ":" + minute;
            /// Time set to mTime2 same
            mTime2 = hourOfDay + ":" + minute;
            /// Time set to mTime3 same
            mTime3 = hourOfDay + ":" + minute;
        }
        textViewTime1.setText(mTime1);
        textViewTime2.setText(mTime2);
        textViewTime3.setText(mTime3);
    }
@覆盖
时间集上的公共无效(RadialPickerLayout视图,整数小时日,整数分钟){
mHour=小时/天;
mMinute=分钟;
如果(分钟<10){
///时间设置为mTime1
mTime1=hourOfDay+“:”+“0”+分钟;
///时间设置为mTime2相同
mTime2=hourOfDay+“:”+“0”+分钟;
///时间设置为mTime3相同
mTime3=小时天数+“:”+“0”+分钟;
}否则{
///时间设置为mTime1
mTime1=小时天数+“:”+分钟;
///时间设置为mTime2相同
mTime2=小时天数+“:”+分钟;
///时间设置为mTime3相同
mTime3=小时天数+“:”+分钟;
}
textViewTime1.setText(mTime1);
textViewTime2.setText(mTime2);
textViewTime3.setText(mTime3);
}

//从时间选择器获取时间

 @Override
    public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute) {
        mHour = hourOfDay;
        mMinute = minute;
因为每次在一个方法中设置所有三个时间,并在文本视图中设置。 仔细检查并重新编码

    if (minute < 10) {
            mTime1 = hourOfDay + ":" + "0" + minute;
            mTime2 = hourOfDay + ":" + "0" + minute;
            mTime3 = hourOfDay + ":" + "0" + minute;
        } else {
            mTime1 = hourOfDay + ":" + minute;
            mTime2 = hourOfDay + ":" + minute;
            mTime3 = hourOfDay + ":" + minute;
        }
        textViewTime1.setText(mTime1);
        textViewTime2.setText(mTime2);
        textViewTime3.setText(mTime3);
    }
if(分钟<10){
mTime1=hourOfDay+“:”+“0”+分钟;
mTime2=hourOfDay+“:”+“0”+分钟;
mTime3=小时天数+“:”+“0”+分钟;
}否则{
mTime1=小时天数+“:”+分钟;
mTime2=小时天数+“:”+分钟;
mTime3=小时天数+“:”+分钟;
}
textViewTime1.setText(mTime1);
textViewTime2.setText(mTime2);
textViewTime3.setText(mTime3);
}

//从时间选择器获取时间

 @Override
    public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute) {
        mHour = hourOfDay;
        mMinute = minute;
因为每次在一个方法中设置所有三个时间,并在文本视图中设置。 仔细检查并重新编码

    if (minute < 10) {
            mTime1 = hourOfDay + ":" + "0" + minute;
            mTime2 = hourOfDay + ":" + "0" + minute;
            mTime3 = hourOfDay + ":" + "0" + minute;
        } else {
            mTime1 = hourOfDay + ":" + minute;
            mTime2 = hourOfDay + ":" + minute;
            mTime3 = hourOfDay + ":" + minute;
        }
        textViewTime1.setText(mTime1);
        textViewTime2.setText(mTime2);
        textViewTime3.setText(mTime3);
    }
if(分钟<10){
mTime1=hourOfDay+“:”+“0”+分钟;
mTime2=hourOfDay+“:”+“0”+分钟;
mTime3=小时天数+“:”+“0”+分钟;
}否则{
mTime1=小时天数+“:”+分钟;
mTime2=小时天数+“:”+分钟;
mTime3=小时天数+“:”+分钟;
}
textViewTime1.setText(mTime1);
textViewTime2.setText(mTime2);
textViewTime3.setText(mTime3);
}

您可能错过了回调的目标用户,因此覆盖了所有文本视图。您应该使用类似的方法:

if(view belongs to textViewTime1)
    textViewTime1.setText(mTime1);
if(view belongs to textViewTime2)
    textViewTime2.setText(mTime2);
if(view belongs to textViewTime3)
    textViewTime3.setText(mTime3);
如果没有
视图
实际是什么以及它是如何连接的信息,我无法帮助您解决这种情况


我快速回顾了,您需要对每个独立的文本视图应用
TimePickerDialog
。最终,要多次使用该控件,而不是将其拼凑在一起。如果不重写您正在使用的库,它将无法以这种方式工作。

您可能错过了回调的目标对象,因此覆盖了所有文本视图。您应该使用类似的方法:

if(view belongs to textViewTime1)
    textViewTime1.setText(mTime1);
if(view belongs to textViewTime2)
    textViewTime2.setText(mTime2);
if(view belongs to textViewTime3)
    textViewTime3.setText(mTime3);
如果没有
视图
实际是什么以及它是如何连接的信息,我无法帮助您解决这种情况


我快速回顾了,您需要对每个独立的文本视图应用
TimePickerDialog
。最终,要多次使用该控件,而不是将其拼凑在一起。如果不重写您正在使用的库,它将无法以这种方式工作。

mTime1
mTime2
mTime3
请仔细查看