일모도원(日暮途遠) 개발자
[Android] android:id="@+id"에서 +의 뜻 본문
xml에서 UI의 ID를 주기위해서 android:id="@+id/button"이런씩으로 이름을 주는데 가끔 id앞에 "+"가 없이 android:id="@id/image" 이런씩으로 있는 경우가 있다.
id는 R.java에 자동으로 생기는데, "+"는 없으면 R.java에 해당 아이디를 만들고 있으면 그걸 쓰라는 뜻이다.
그럼 "+"없으면? 그건 있는걸 쓰라는 뜻이다. R.java에 없으면 새로 만들지 않고 에러를 낸다.
당연히 "@+id/"를 쓰자.
XML파싱은 위에서 아래로 순차적으로 하기 때문에
만약 아래처럼 "+"가 위의 Button에 만 있고 Button안에서 참조하는 "@id/image"에 +가 없다면 에러가 난다.
<Button
android:id="@+id/button"
android:layout_below="@id/image"/> (여기서 image란 id를 찾지못해서 에러가 남)
<ImageView
android:id="@+id/image"/>
해결책은 ImageView태그를 먼저 선언하던지
<ImageView
android:id="@+id/image"/>
<Button
android:id="@+id/button"
android:layout_below="@id/image"/> (위에서 이미 image란 id를 선언했기에 에러가 안남)
Button안에서 참조하는 "@id/image"에 +를 추가하고 아래에 추가안하면 된다.
<Button
android:id="@+id/button"
android:layout_below="@+id/image"/> (여기서 +를 사용해서 image란 id가 없으면 만들게 함.)
<ImageView
android:id="@+id/image"/>
하지만 이렇게 복잡하게 하지 말고 그냥 "@+id"를 쓰자
참고
https://proandroiddev.com/android-resource-id-under-the-hood-45196d69f1e6
'안드로이드 개발 > 안드로이드' 카테고리의 다른 글
[Android] 텍스트 꾸미기 (Span) (0) | 2022.12.29 |
---|---|
[Android] SPAN_EXCLUSIVE_INCLUSIVE (0) | 2022.12.29 |
[안드로이드] 앱 구글플레이에 업데이트 제출하기 (0) | 2022.08.04 |
[Android] 제일 처음 실행되는 액티비티 찾기 (0) | 2022.07.01 |
[Android] 화면 흐려지고 절전상태로 가는거 방지 (0) | 2022.06.29 |