카테고리 보관물: Android

Android

Android에서 “@ id /”와 “@ + id /”의 차이점 @+id/? 에 @+id/더하기 기호

@id/과의 차이점은 무엇입니까 @+id/?

@+id/더하기 기호 +지시하는 새로운 자원 이름을 생성하고에 추가 R.java파일하지만 약 @id/? 문서에서 ID: Android 자원을 참조 할 때 ID더하기 기호가 필요하지 않지만 다음과 같이 android 패키지 네임 스페이스를 추가해야합니다.

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

그러나 아래 이미지에서 Eclipse는 어떤 종류의 제안하지 않습니다 @android:id/.

@ / id 및 @ + / id에 대한 제안을 보여주는 이미지

인가 @id/@android:id/같은?



답변

당신은 참조 Android resources로, 이미 안드로이드 시스템에 정의 된, @android:id/..당신이 정의했다고 리소스에 액세스하는 동안 / 프로젝트에서 생성, 사용@id/..

더 많은 정보

채팅의 설명에 따라 다음과 같은 문제가 있다고 말했습니다.

우리가 사용 android:id="@id/layout_item_id"하면 작동하지 않습니다. 대신 @+id/작동하므로 여기의 차이점은 무엇입니까? 그리고 그것은 내 원래의 질문이었습니다.

당신의 XML 속성을 사용할 때 글쎄, 그것은 상황에 따라 android:id다음 새 ID를 지정하고, 파서 지시 (또는 빌더 호출)에 새 항목을 만들 수있다 R.java, 따라서 당신이 가지고, 표시를 포함 +하십시오.

와 같은 다른 경우 android:layout_below="@id/myTextView"에는 이미 생성 된 ID를 참조하므로 파서는이를에서 이미 생성 된 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>


답변

때때로 레이아웃 파일에 다음과 같은 참조가 나타납니다.

<listview id="@+id/android:list">

<listview id="@android:id/list">

차이점이 뭐야?

.. ☺ 물어봐서 기쁘다

@+id/foo애플리케이션의 네임 스페이스에 foo라는 ID를 작성하고 있음을 의미합니다. 를 사용하여 참조 할 수 있습니다 @id/foo.
@android:id/foo은 안드로이드 네임 스페이스에 정의 된 ID를 참조하고 있음을 의미합니다.

‘+’는 심볼이 존재하지 않는 경우 심볼을 작성하는 것을 의미합니다. android : 심볼을 참조 할 때 필요하지 않으며 사용하지 않아야합니다. 이는 심볼이 플랫폼에 의해 이미 정의되어 있고 어쨌든 해당 네임 스페이스에서 자신을 만들 수 없기 때문입니다.

이 네임 스페이스는 프레임 워크의 네임 스페이스입니다. 예를 들어, @android:id/list프레임 워크가 찾을 것으로 예상되는 ID이기 때문에 사용해야합니다 . (프레임 워크는 안드로이드 네임 스페이스의 ID에 대해서만 알고 있습니다.)

소스 에서 완전히 복사


답변

한마디로

android:id="@+id/my_button"

+ id 더하기 부호는 Android에서 리소스에 새 ID를 추가하거나 만들도록 지시합니다.

동안

android:layout_below="@id/my_button"

이미 생성 된 ID를 참조하는 데 도움이됩니다 ..


답변

+자원 유형 앞 의 더하기 부호 ( )는 자원 ID를 처음 정의 할 때만 필요합니다. 앱을 컴파일 할 때 SDK 도구는 ID 이름을 사용하여 프로젝트 R.java파일에 EditText요소 를 나타내는 새 리소스 ID를 만듭니다 . 이 방법으로 리소스 ID를 한 번 선언하면 ID에 대한 다른 참조에는 더하기 부호가 필요하지 않습니다. 더하기 부호는 새 자원 ID를 지정할 때만 필요하며 문자열이나 레이아웃과 같은 구체적인 자원에는 필요하지 않습니다. 자원 객체에 대한 자세한 내용은 사이드 박스를 참조하십시오.

보낸 사람 : https://developer.android.com/training/basics/firstapp/building-ui.html


답변

매우 간단합니다.

“@ + …”-새로 만들기

“@ …”-기존 링크

출처 : https://developer.android.com/guide/topics/resources/layout-resource.html#idvalue


답변

로부터 개발자 가이드 :

android:id="@+id/my_button"

@문자열의 시작 부분에있는 at 기호 ( )는 XML 구문 분석기가 나머지 ID 문자열을 구문 분석하고 확장하여 ID 자원으로 식별해야 함을 나타냅니다. 더하기 기호 ( +)는 R.java파일 에서 파일에 작성하여 추가해야하는 새로운 자원 이름임을 의미합니다 . Android 프레임 워크에서 제공하는 다른 ID 자원이 많이 있습니다. Android 리소스 ID를 참조 할 때는 플러스 기호가 필요하지 않지만 다음과 android같이 패키지 네임 스페이스를 추가해야합니다 .

android:id="@android:id/empty"