2016-05-31 8 views
0

그래서 대학에서 내 프로젝트에 간단한 알람 시계를 만들고 있습니다. Android Studio를 사용하고 있습니다. 내가는 Calendar.set (...) 및 hour_string/minute_string없이 설정하면 바로 다른 응용 프로그램 작동이 중지, 알람이 완벽하게 작동 설정 표시,알람 응용 프로그램 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); 
} 

:

여기에 코드입니다.

프로젝트 구조는 API19 : Android 4.4 (KitKat) 용입니다. 내 휴대 전화는 API23 : Android 5.1 (Lollipop)입니다.

나는 그것은 말한다 "전화는 API 레벨 23 (현재 분 19)가 필요합니다"

calendar.set(Calendar.HOUR_OF_DAY, alarm_timer.getHour()); 
calendar.set(Calendar.MINUTE, alarm_timer.getMinute()); 

을 썼을 때. 작은 노란색 전구에서 자동으로 "@TargetApi (Build.VERSION_CODES.M)"라는 줄을 썼습니다. 나는 이것이 문제가있는 곳이라고 생각하지만, 자바 나 자바와 관련된 것은 나쁘다.

누구든지 나를 도울 수 있거나 적어도 실수를 발견하면, 나는 감사 할 것입니다!

+0

오류 메시지는'@TargetApi ... '로 시작하는 줄을 제거하고 다시 시도하십시오 ... – alfasin

+0

"호출에 API 수준 23 (현재 최소값은 19)"이 필요합니다. 의미하는 것은, 당신이 사용한 코드 라인이 새로운 android-os에서 개발되고 지원된다는 것입니다. –

답변

1

문제는 TimePicker 클래스입니다. getHour()getMinute()have been added in API level 23입니다.

다른 방법을 사용해야하거나 API23 용 버전과 낮은 버전 용 버전 두 가지를 구현해야합니다.

0

getHour() 및 getMinute() 메서드를 getCurrentHour() 및 getCurrentMinute() 메서드로 바꿉니다.