【问题标题】:TimePicker getHours(), getMinutes in API 15API 15 中的 TimePicker getHours()、getMinutes
【发布时间】:2016-12-24 07:03:10
【问题描述】:

我正在制作一个简单的闹钟应用程序,学习BroadcastReceivers,问题是getHours() and getMinutes() 仅适用于API 23。

  • 有没有其他方法可以实现这一点?
  • 如果是这样?可能的解决方案是否适用于 24 等更高的 API?

这是我的示例代码:AlarmActivity.java

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_alarm);

    alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

    setWidgets();

    Intent intent = new Intent(this.context, AlarmReceivers.class);

}

public void setWidgets(){
    timePicker = (TimePicker) findViewById(R.id.timePicker);
    //Calendar calendar = Calendar.getInstance();

    buttonSetAlarm = (Button) findViewById(R.id.buttonSetAlarm);
    buttonSetAlarm.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int getHour = timePicker.getHour();
            int getMinute = timePicker.getMinute();

            calendar.set(Calendar.HOUR_OF_DAY,timePicker.getHour());
            calendar.set(java.util.Calendar.MINUTE, timePicker.getMinute());

            if (getHour > 12){
                int twelve = getHour - 12;
            }

            if (getMinute < 10){

            }

            setText("On");

        }
    });

我坚持使用 getHour()getMinute()

【问题讨论】:

    标签: android broadcastreceiver android-alarms android-calendar android-timepicker


    【解决方案1】:

    由于 getHour()getMinute() 用于 API 23 及更高版本,如果您的应用程序针对较低的 API,您需要添加对它们的支持。

    您可以通过添加以下内容来做到这一点:

    if(Build.VERSION.SDK_INT < 23){
        int getHour = timePicker.getCurrentHour();
        int getMinute = timePicker.getCurrentMinute();
    
        calendar.set(Calendar.HOUR_OF_DAY, timePicker.getCurrentHour());
        calendar.set(Calendar.MINUTE, timePicker.getCurrentMinute());
    } else{
        int getHour = timePicker.getHour();
        int getMinute = timePicker.getMinute();
    
        calendar.set(Calendar.HOUR_OF_DAY, timePicker.getHour());
        calendar.set(Calendar.MINUTE, timePicker.getMinute());
    }
    

    getCurrentHour()getCurrentMinute() 均已弃用,但仍适用于较低的 API。

    【讨论】:

      【解决方案2】:

      您可以使用 Calendar 类中的 get() 方法。

      calendar.get(Calendar.HOUR);
      calendar.get(Calendar.MINUTE);
      

      【讨论】:

        猜你喜欢
        • 2011-12-30
        • 1970-01-01
        • 2022-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-15
        相关资源
        最近更新 更多