所以我正在爲我的大學項目製作簡單的鬧鐘。我正在使用Android Studio。鬧鐘應用程序Android Studio
下面的代碼:
public class AlarmActivity extends AppCompatActivity {
TimePicker alarm_timer;
TextView update_text;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarm);
this.context = this;
// initialize
alarm_timer = (TimePicker) findViewById(R.id.timePicker);
update_text = (TextView) findViewById(R.id.textView);
//create instance of calendar
final Calendar calendar = Calendar.getInstance();
Button alarm_on = (Button) findViewById(R.id.bttnAlarmSet);
//onClickListener
assert alarm_on != null;
alarm_on.setOnClickListener(new View.OnClickListener() {
@TargetApi(Build.VERSION_CODES.M)
@Override
public void onClick(View v) {
calendar.set(Calendar.HOUR_OF_DAY, alarm_timer.getHour());
calendar.set(Calendar.MINUTE, alarm_timer.getMinute());
int hour = alarm_timer.getHour();
int minute = alarm_timer.getMinute();
//convert int values to string
String hour_string = String.valueOf(hour);
String minute_string = String.valueOf(minute);
//Change TextView
set_alarm_text("Alarm set to: "+ hour_string +":"+ minute_string);
}
});
}
//Method to Change text View
private void set_alarm_text(String output) {
update_text.setText(output);
}
如果我把它沒有calendar.set(...)和hour_string/minute_string,只顯示報警設置它完美的作品,否則該應用程序停止工作。
項目結構適用於API19:Android 4.4(KitKat)。我的手機是API23:Android 5.1(棒棒糖)。
當我寫
calendar.set(Calendar.HOUR_OF_DAY, alarm_timer.getHour());
calendar.set(Calendar.MINUTE, alarm_timer.getMinute());
它說: 「呼叫需要API等級23(當前分鐘是19)」。從小黃色的小球裏,它自動給我寫了「@TargetApi(Build.VERSION_CODES.M)」這一行。我認爲這是問題所在,但我對Java或與Java有關的任何東西都不好。
如果有人能夠幫助我,或者至少注意到任何錯誤,我會很樂意!
錯誤消息非常簡單:刪除以@TargetApi ...開頭的行並重試... – alfasin
「調用需要API級別23(當前最小值爲19)」。意味着,您使用的代碼行是在新的android-os中開發和支持的。 –