API 15中的TimePicker getHours(),getMinutes

RoC*_*oCk 4 android broadcastreceiver android-alarms android-calendar android-timepicker

我正在制作一个简单的闹钟应用,要研究BroadcastReceivers,问题getHours() and getMinutes()仅适用于API 23.

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

这是我的示例代码: 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");

        }
    });
Run Code Online (Sandbox Code Playgroud)

我坚持getHour()getMinute().

小智 11

由于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());
}
Run Code Online (Sandbox Code Playgroud)

双方getCurrentHour()getCurrentMinute()已被弃用,但仍然可以工作在较低的API.