programing

Android에서 "@id/"와 "@+id/"의 차이점

newstyles 2023. 7. 13. 20:43

Android에서 "@id/"와 "@+id/"의 차이점

사이의 차이점은 무엇입니까?@id/그리고.@+id/?

더하기 기호에서+새 하고 에 합니다.R.java파일은 어떻게 되나요?Android 리소스를 참조하는 경우의 설명서에서:ID더하기 기호는 필요하지 않지만 다음과 같이 Android 패키지 네임스페이스를 추가해야 합니다.

android:id="@android:id/list"

하지만 아래 이미지에서 이클립스는 어떤 종류의 것도 제안하지 않습니다.@android:id/.

Image showing the suggestion for the @/id and @+/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.javajava.
  • @id는 R.java 파일의 보기에 대해 생성된 ID를 참조하는 데 사용됩니다.

우리는 사용합니다.@+id와 함께android:id=""그러나 ID가 생성되지 않고 생성되기 전에 참조하는 경우(Forward Referencing).

그런경는에, 는리우우를 사용합니다.@+idID를 생성하고 뷰를 정의하는 동안 참조해야 합니다.

아래 코드를 참조하십시오.

<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