2013-09-22 2 views
1

google 개발자의 Android 비디오에서 두 가지 메소드를 구현하고 API를 기반으로 어떤 메소드를 호출해야 하는지를 주석으로 정의했습니다. 그는 주석 @apilevel을 사용하는 문제에 Different Java methods for different API Levelsandroid는 다른 API 레벨에 메소드를 구현합니다.

:

Unfortunatelly, 내가 (내가 있던 비디오 기억할 수없는) 더 이상 비디오를 찾습니다은`t, 그래서 나는이 질문에 대한 StackOverflow의 수색이 발견 그 주석을 찾을 수 없습니다.

@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) 
private int getDisplayWidth(Display display){ 
    Point size = new Point(); 
    display.getSize(size); 
    return size.x; 
} 

@TargetApi(Build.VERSION_CODES.FROYO) 
private int getDisplayWidth(Display display){ 
    return display.getWidth(); 
} 

그러나 ADT 나에게 중복 된 방법의 오류를주고있다 :

기본적으로, 내가하고 싶은 것은 이것이다.

답변

4

은 사용 :이 질문에 대한 답변과 답변에 대한

@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) 
private int getDisplayWidth(Display display){ 
    if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB_MR2) { 
     Point size = new Point(); 
     display.getSize(size); 
     return size.x; 
    } 

    return display.getWidth(); 
} 
+0

감사 : http://stackoverflow.com/questions/14341042/what-is-better-suppresslint-or-targetapi 나는 이해 무엇 @TargetApi가 있습니다. – jonathanrz

+0

나는 클래스 오버로드로 내가 원하는 것을 성취 할 수있는 유일한 방법이 있다고 믿는다. – jonathanrz

+1

@jonathanrz : 예, 같은 클래스에서 동일한 서명 (이름, 매개 변수, 반환 유형)을 가진 두 개의 메소드를 가질 방법이 없습니다. '@ TargetApi'는 그것을 변경하지 않습니다. – CommonsWare