Android:使用文本视图中显示的时间设置时间选择器

Nit*_*ish 14 time android android-timepicker

在我的应用程序中,我在文本视图中显示时间为07:00 PM.单击文本视图时,会弹出一个时间选择器对话框,在该时间选择器中,我必须显示与textview中显示的内容完全相同的时间.但是,我没有得到如何做到这一点.

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a");
        //int hr = 0;
        Date date = null;
        try 
        {
            date = sdf.parse(resDateArray[3]);
        } 
        catch (ParseException e) {
            e.printStackTrace();
        }
        final Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        //tp is reference variable for time picker

        tp.setCurrentHour(calendar.get(Calendar.HOUR));
        tp.setCurrentMinute(calendar.get(Calendar.MINUTE));

        }//else
Run Code Online (Sandbox Code Playgroud)

abe*_*ker 34

你应该使用a SimpleDateFormat来获取Date你的对象String.然后打电话

picker.setCurrentHour(date.getHours())
Run Code Online (Sandbox Code Playgroud)

picker.setCurrentMinute(date.getMinutes())
Run Code Online (Sandbox Code Playgroud)

由于该Date对象已弃用,您应该使用a Calendar而不是它.您可以实例化Calendar这种方式:

Calendar c = Calendar.getInstance();
c.setTime(date);
picker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY));
picker.setCurrentMinute(c.get(Calendat.MINUTE));
Run Code Online (Sandbox Code Playgroud)

编辑:完整的代码

        SimpleDateFormat sdf = new SimpleDateFormat("hh:ss");
        Date date = null;
        try {
            date = sdf.parse("07:00");
        } catch (ParseException e) {
        }
        Calendar c = Calendar.getInstance();
        c.setTime(date);

        TimePicker picker = new TimePicker(getApplicationContext());
        picker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY));
        picker.setCurrentMinute(c.get(Calendar.MINUTE));
Run Code Online (Sandbox Code Playgroud)