2011-08-05 2 views
0

나는 텍스트 뷰의 가시성을 전환하려는 경우, 나는 Android Documentation에 따르면 View.VISIBLE 또는 View.INVISIBLEView.VISIBLE과 일반 int가 사용하는 int의 차이점은 무엇입니까?

을 사용할 수 있습니다, VISIBLE는 0이고 보이지 않는 1.

입니다

그러나 setvisibility (0)를 사용하면 작동하지 않습니다.

View.VISIBLE이 작동하지 않지만 0이 아닌 이유는 무엇입니까?

+0

그것은 내가 setVisibility를 사용하는 경우 (0) 항목이 표시 도착 ... 나를 위해 작동 (.GONE은 8)입니다. – Cristian

+0

Android 라이브러리에서 View.Visible이 0 인 경우 이는 불가능합니다. –

+0

setVisibility (1)도 표시하지만 보이지 않아야합니다. – mrburns

답변

2

source code을 확인하는 것은 Android에서 항상 유효한 옵션입니다. 즉시 명백하다 한 가지 INVISIBLE하지 1 점이다 :

/** 
* This view is visible. Use with {@link #setVisibility}. 
*/ 
public static final int VISIBLE = 0x00000000; 

/** 
* This view is invisible, but it still takes up space for layout purposes. 
* Use with {@link #setVisibility}. 
*/ 
public static final int INVISIBLE = 0x00000004; 

그러나, VISIBLE 그렇게 리터럴 0 일을해야 사용, 참으로 0입니다. 모든 setVisibility()이 실제로 수행하는 번호는 setFlags()이며 전달하는 번호는 VISIBILITY_MASK이며 0x0C (12)입니다.

+0

감사합니다. 설명서를 잘못 읽은 것처럼 보입니다. 나는 그 0, 1, 2 값이 XML 파일을위한 것이라고 생각하고, VISIBLE, INVISIBLE, GONE ints는 코드에서 사용할 때이다. – mrburns

1

이러한 int 값은 항상 변경 될 수 있으므로 열거 형 매개 변수와 반대되는 숫자를 사용할 때는주의해야합니다. (열거 형이 아닌 것으로 알고 있습니다 ...).

당신이 정말로 이러한 매개 변수를 사용 뒤에 가치를 알고 싶다면

은 : 안녕하세요와

hello.setText(Integer.toString(View.INVISIBLE)) 

는 텍스트 뷰 인. 이 경우

는 대답은 4

관련 문제