繁体   English   中英

将时间选择器对话框的时间设置为所选时间

[英]Set the time of time picker dialogue to the selected time

我的设置屏幕上有一个时间选择器对话框。 当用户单击时间时,将出现时间选择器对话框,并且用户选择时间。 但是,当用户再次单击时间选择器时,时间选择器对话框将显示当前时间而不是所选时间。 这是我到目前为止所做的。

 mreminder.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Calendar mcurrentTime = Calendar.getInstance();
            final int[] hour = {mcurrentTime.get(Calendar.HOUR_OF_DAY)};
            int minute = mcurrentTime.get(Calendar.MINUTE);
            TimePickerDialog mTimePicker;
            mTimePicker = new TimePickerDialog(SettingsActivity.this, new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                    int hour = selectedHour;
                    int minutes = selectedMinute;
                    String timeSet = " ";
                    if (hour > 12) {
                        hour -= 12;
                        timeSet = "PM";
                    } else if (hour == 0) {
                        hour += 12;
                        timeSet = "AM";
                    } else if (hour == 12)
                        timeSet = "PM";
                    else
                        timeSet = "AM";

                    String min = "";
                    if (minutes < 10)
                        min = "0" + minutes;
                    else
                        min = String.valueOf(minutes);

                    // Append in a StringBuilder
                    String aTime = new StringBuilder().append(hour).append(':')
                            .append(min).append(" ").append(timeSet).toString();
                    mreminder.setText(aTime);
                    pref.savePref(REMINDER, aTime);
                }
            }, hour[0], minute, false);
            mTimePicker.setTitle("Select Time");
            mTimePicker.show();

        }
    });

有人可以告诉我下次用户单击时如何将时间选择器设置为选定的时间。

将选定的时间存储在sharedPreferences中,然后在onClick事件中检查sharedPreference是否包含某些内容。 如果有东西,然后从那里加载数据,您可以执行以下操作:

int hours,mins;//global variables;    
mreminder.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        int h = Integer.parseInt(sharedPreference.getString("HOUR","0));
        int m = Integer.parseInt(sharedPreference.getString("MIN","0"));//"0" is the default value if nothing is stored;
        if(h>0){
               hours = h;
               mins = m;
        }else{
           Calendar mcurrentTime = Calendar.getInstance();
        hours = mcurrentTime.get(Calendar.HOUR_OF_DAY);
        mins = mcurrentTime.get(Calendar.MINUTE);
        }

        TimePickerDialog mTimePicker;
        mTimePicker = new TimePickerDialog(SettingsActivity.this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                int hour = selectedHour;
                int minutes = selectedMinute;
                String timeSet = " ";
                if (hour > 12) {
                    hour -= 12;
                    timeSet = "PM";
                } else if (hour == 0) {
                    hour += 12;
                    timeSet = "AM";
                } else if (hour == 12)
                    timeSet = "PM";
                else
                    timeSet = "AM";

                String min = "";
                if (minutes < 10)
                    min = "0" + minutes;
                else
                    min = String.valueOf(minutes);

                // Append in a StringBuilder
                String aTime = new StringBuilder().append(hour).append(':')
                        .append(min).append(" ").append(timeSet).toString();
                mreminder.setText(aTime);
                pref.savePref(REMINDER, aTime);
            }
        }, hours, mins, false);
        mTimePicker.setTitle("Select Time");
        mTimePicker.show();

    }
});

这样可以解决您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM