Android에서 "@id/"와 "@+id/"의 차이점
사이의 차이점은 무엇입니까?
@id/
그리고.@+id/
?
더하기 기호에서+
새 하고 에 합니다.R.java
파일은 어떻게 되나요?Android 리소스를 참조하는 경우의 설명서에서:ID
더하기 기호는 필요하지 않지만 다음과 같이 Android 패키지 네임스페이스를 추가해야 합니다.
android:id="@android:id/list"
하지만 아래 이미지에서 이클립스는 어떤 종류의 것도 제안하지 않습니다.@android:id/
.
@id/
그리고.@android:id/
똑같습니까?
당신이 언급한 것은Android resources
이미 Android 시스템에 정의되어 있습니다.@android:id/..
에는 사자생프트정서의동에성한/리안액는세하스소에용을 합니다.@id/..
추가 정보
채팅에서 설명한 바와 같이, 당신은 다음과 같은 문제가 있다고 말했습니다.
사용할 경우
android:id="@id/layout_item_id"
동작되지 않습니다. ㅠㅠ@+id/
작동하는데 여기서 차이점이 뭐죠?그리고 그것이 저의 원래 질문이었습니다.
android:id
그런 다음 새 ID를 지정하고 파서(또는 작성자라고 함)에게 새 항목을 작성하도록 지시합니다.R.java
라서를당신합야니다포해함은따▁a를 포함해야 합니다.+
서명하다.
다른경는에, 를들면우예처럼,android:layout_below="@id/myTextView"
를 생를성 된미 참이 를고 이에있 파연다 생결니 합된성 미이으서 id로 합니다.R.java
.
더 많은 정보 다시 보기
당신이 채팅에서 말했듯이, 주의하세요.android:layout_below="@id/myTextView"
ID가 있는 요소를 인식하지 못합니다.myTextView
사용 중인 요소 뒤에 쓰여 있는 경우.
+ 기호는 리소스 ID 목록에 ID를 추가하기 위한 바로 가기입니다.그렇지 않으면 다음과 같은 xml 파일에 저장해야 합니다.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="my_logo" type="id"/>
</resources>
요컨대
android:id="@+id/my_button"
+id Plus 기호는 Android에게 Resources에 새 ID를 추가하거나 만들라고 말합니다.
하는 동안에
android:layout_below="@id/my_button"
이미 생성된 ID를 참조하는 것이 도움이 됩니다.
매우 간단합니다.
- 새로 만들기
- 기존 링크
출처: https://developer.android.com/guide/topics/resources/layout-resource.html#idvalue
기호 더하기기호(호기▁(▁the더
+
리소스 ID를 처음 정의하는 경우에만 리소스 유형이 필요합니다.때SDK에서 새 합니다.R.java
를 하는 파일EditText
ID가 되면 다른 기호가 .리소스 ID가 이렇게 선언되면 ID에 대한 다른 참조에는 더하기 기호가 필요하지 않습니다.더하기 기호는 새 리소스 ID를 지정할 때만 필요하며 문자열 또는 레이아웃과 같은 특정 리소스에는 필요하지 않습니다.리소스 개체에 대한 자세한 내용은 사이드박스를 참조하십시오.
보낸 사람: https://developer.android.com/training/basics/firstapp/building-ui.html
개발자 가이드에서:
android:id="@+id/my_button"
앳마크(마()@
문자열의 시작 부분에 있는 )은 XML 파서가 나머지 ID 문자열을 구문 분석하고 확장하여 ID 리소스로 식별해야 함을 나타냅니다. 기호+
새합니다(에서).R.java
파일). Android 프레임워크에서 제공하는 다른 ID 리소스는 여러 가지가 있습니다.Android 리소스 ID를 참조할 때는 더하기 기호가 필요하지 않지만 다음을 추가해야 합니다.android
패키지 네임스페이스(예:
android:id="@android:id/empty"
사의차이의 @+id
그리고.@id
다음과 같습니다.
@+id
는 에뷰 의를 ID 사데니다에 있는 하는 데 사용됩니다.R.java
java.@id
는 R.java 파일의 보기에 대해 생성된 ID를 참조하는 데 사용됩니다.
우리는 사용합니다.@+id
와 함께android:id=""
그러나 ID가 생성되지 않고 생성되기 전에 참조하는 경우(Forward Referencing).
그런경는에, 는리우우를 사용합니다.@+id
ID를 생성하고 뷰를 정의하는 동안 참조해야 합니다.
아래 코드를 참조하십시오.
<RelativeLayout>
<TextView
android:id="@+id/dates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/spinner" />
<Spinner
android:id="@id/spinner"
android:layout_width="96dp"
android:layout_height="wrap_content"
android:layout_below="@id/dates"
android:layout_alignParentRight="true" />
</RelativeLayout>
위에서스대한에너 id에 대한 .@+id/spinner
다른 뷰에서 생성되며 스피너를 정의하는 동안 위에서 생성된 ID를 참조합니다.
따라서 뷰가 생성되기 전에 뷰를 사용하는 경우에는 id를 생성해야 합니다.
이클립스에 버그가 있는데, 이 버그는 가끔 당신이 새로운 것을 만든 경우에 발생합니다.@+id/..
프로젝트를 새로 구축한 후에도 R.java 파일에 즉시 추가되지 않습니다.해결책은 이클립스를 다시 시작하는 것입니다.
이것은 가능한 한 빨리 해결되어야 한다고 생각합니다. 왜냐하면 이것은 (그리고 경험상으로) 일부 개발자들이 그들의 구문에 뭔가 잘못된 것이 있다고 생각하도록 혼란스럽게 만들고 디버깅할 것이 정말 아무것도 없더라도 디버깅하려고 할 수 있기 때문입니다.
Android는 XML 파일에 대한 값이 저장되는 리소스라는 일부 파일을 사용합니다.
이제 XML 개체에 @id/를 사용하면 값 파일에 이미 등록된 ID를 참조하려고 합니다.반면에 @+id/를 사용하면 '+' 기호가 암시하는 대로 값 파일에 새 id를 등록합니다.
이것이 도움이 되기를 바랍니다 :).
@id/
그리고.@android:id/
동일하지 않습니다.
@id/
애플리케이션에 하는 아이디, 응용프를서에중다는입니하참조램로.@android:id/
Android 플랫폼에서 항목을 참조합니다.
이클립스가 틀렸습니다.
작업을 에는 보항목동수경행우는하를 할 수 .@+id
여러 개를 컴파일하는 동안 모든 레이아웃의 각 항목에 대해@+id/foo
그자리의 R.java
파일은 하나의 열거형만 만듭니다. 작업을하는 각 , 저는 예를들각페동에일작한업수저경있우버장는튼이는행하을어이지▁on를 합니다.android:id="@+id/button_save"
.R.java 파일에는 button_save에 대한 항목이 하나만 있습니다.
사의차이의 “@+id/”
그리고.“@id/”
첫 번째 것은 다음을 만드는 데 사용됩니다.ID
요소의 는 특정 요소를 데 됩니다. UI 구 다 른 구 요 소 는 특 요 참 는 하 조 사 됩 니 용 데 다 를 소 성 구 특 정 성 성 요 소 의 ▁component ▁of 니 ▁to 됩 다용사▁refer▁for▁the ▁the ▁used정데▁and특▁the▁is▁ui▁partic는▁componentular구▁another▁one하참조▁partic성
언급URL : https://stackoverflow.com/questions/5025910/difference-between-id-and-id-in-android
'programing' 카테고리의 다른 글
엑셀 다운로드 시 파일 손상 경고를 억제하는 방법은 무엇입니까? (0) | 2023.07.13 |
---|---|
MongoDB에서 내부 가입은 어떻게 하나요? (0) | 2023.07.13 |
오라클 11g에 시퀀스가 있는지 확인하려면 어떻게 해야 합니까? (0) | 2023.07.13 |
봄 부츠 3 - 자카르타와 자바. (0) | 2023.07.13 |
WooCommerce 카트에 프로그래밍 방식으로 면세 수수료 추가 (0) | 2023.07.13 |