获取timePicker值而不显示timePicker对话框

时间:2016-04-11 16:18:58

标签: android button layout timepicker

如何在不显示timePicker对话框的情况下获取所选时间值?

下面的图片是我的闹钟设计布局。单击按钮时,我希望它显示所选值而不是弹出timePicker对话框。

enter image description here

 alarm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                 showDialog(TIME_DIALOG_ID);
            }
        });
    }

    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case TIME_DIALOG_ID:

                // set time picker as current time
                return new TimePickerDialog(this, timePickerListener, hour, minute,
                        false);
        }
        return null;
    }

    private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() {

        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minutes) {
            // TODO Auto-generated method stub
            hour   = hourOfDay;
            minute = minutes;
            updateTime(hour,minute);
        }
    };

    // Used to convert 24hr format to 12hr format with AM/PM values
    private void updateTime(int hours, int mins) {

        String timeSet = "";
        if (hours > 12) {
            hours -= 12;
            timeSet = "PM";
        } else if (hours == 0) {
            hours += 12;
            timeSet = "AM";
        } else if (hours == 12)
            timeSet = "PM";
        else
            timeSet = "AM";


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

        // Append in a StringBuilder
        String aTime = new StringBuilder().append(hours).append(':')
                .append(minutes).append(" ").append(timeSet).toString();

       Toast.makeText(getApplicationContext(),aTime,Toast.LENGTH_LONG).show();
    }
}

我应该在按钮点击中更改哪里?谢谢。

1 个答案:

答案 0 :(得分:0)

点击内部按钮,删除

showDialog(TIME_DIALOG_ID);并替换为

int hour = alarmTimePicker.getCurrentHour();
int min = alarmTimePicker.getCurrentMinute();
updateTime(hour,min); 

alarmTimePicker遵循用于初始化timePicker的{​​{1}}名称。

例如:

timePicker

删除下面的代码,因为不需要对话框。

TimePicker alarmTimePicker = (TimePicker) findViewById(R.id.timePicker);