두 개의 서로 다른 레이아웃에서 두 개의 서로 다른보기에 대해 동일한 ID를 사용하는 경우, R의 "id"클래스에있는 ID에 대해 하나의 참조 만 작성되었다고 가정합니다 .자바. 사실 내가 생각하기에 오류가 나타나지 않습니다. 빌드에서 "id"클래스에 같은 이름의 상수를 추가하려고하면 오류가 발생합니다. 오류가 표시되지 않는 이유는 무엇입니까? 그리고 두 ID가 서로 다른 두 개의 뷰를 식별하는 방법은 무엇입니까?R.java- android에서 중복 된보기 ID의 작업
답변
두 명의 서로 다른 그룹에 이름이 모두 Vicky 인 경우 이름 (= id)을 호출 할 사람이 누구인지는 중요하지 않습니다. 첫 번째 그룹에서 'Vicky'라고 부르면 THAT 그룹의 Vicky가 응답합니다. android에서 setContentView(<layout file>)
을 사용하여 활동에 '그룹'보기를 할당합니다. 여기서 <layout file>
은 그룹입니다. findViewWithId()에서로드 된 레이아웃 파일이 아닌 것처럼 사용할 수없는 ID로 뷰를 요청하면 null을 반환합니다.
예 :
layout1.xml는 layout2.xml는, 제 1 및 제 2 레이아웃 파일에 findViewById(R.id.name1)
를 호출
<View id="@+id/name1"/>
<View id="@+id/name3"/>
이 들어있는 첫 번째보기를 반환합니다
<View id="@+id/name1"/>
<View id="@+id/name2"/>
<View id="@+id/name3"/>
이 포함되어 있습니다. 그러나 두 번째 레이아웃에서 findViewById(R.id.name2)
으로 전화하면 null
을 반환합니다. id는 레이아웃 파일에 존재하지만 '로드 된'레이아웃 파일에는 존재하지 않습니다.
ID는보기 개체에 대한 참조가 아닙니다. 그것들은 다른 레이아웃의 여러 뷰에서 사용할 수있는 식별자입니다. 레이아웃 파일에서 식별자를 찾으면 뷰를 사용하여 뷰에 대한 참조를 얻을 수 있습니다.
두 개의 서로 다른보기에 대해 동일한 문자열을 사용하는 경우 하나의 ID 만 생성되고 동일합니다. RelativeLayouts에서는 @ + id를 여러 번 사용할 수 있고 동일한 ID를 참조 할 수 있기 때문에 RelativeLayouts에서 매우 유용한 기능입니다. 뷰 자체에는 고유 ID가 있어야하지만 ID는에서 참조 할 수 있습니다. 레이아웃 문.
이것은 설계된 방식이며 오류가 아닙니다.
동일한 파일에없는 다른 xml
개의 파일에있는보기 ids
에 대해 동일한 문자열 이름을 사용할 수 있습니다. 그리고 그것은 컴파일러가 서로 다른 레이아웃 내에서 서로 다른 뷰를 구별하는 방법입니다.
k.하지만 우리는 단지 R.id.viewId의 견해를 찾고 있습니다. 우리는 어떤 레이아웃도 언급하지 않고 있습니다. 어떻게 작동합니까? – siraj
활동에서 예를 들어 R.layout.main과 같은 고유 한 레이아웃을 사용하고 있기 때문에 –
또는 레이아웃이 부풀어있는 경우에도 view.finedViewbyID (R.id.some_id)와 같은보기가 표시됩니다. 그래서 항상 조회수를 얻고 있습니다 특정 XML로부터 –
- 1. Android에서 다양한 활동을 통해 고정 된보기
- 2. Proguard 난독 화 동안 중복 R.java 파일 생성 중
- 3. 중복 된 id의 스크래치 jquery 선택기가 있습니까?
- 4. R.java 오작동
- 5. UNIX에서 프로세스 그룹 ID와 작업 ID의 차이
- 6. Listview 중복 작업
- 7. 중복 작업 완료()
- 8. rails_admin 중복 작업
- 9. JPanel 중복 작업
- 10. 고유 ID의
- 11. Android에서 불필요한 작업 중지
- 12. 백그라운드 Android에서 작업 실행
- 13. Android에서 Excel 파일 작업
- 14. android에서 제거 작업 수행
- 15. Android에서 예약 작업 수행
- 16. android에서 데이터베이스 작업
- 17. android에서 데이터베이스로 작업 하시겠습니까?
- 18. R.java 생성 방법
- 19. 수동으로 R.java 생성
- 20. 갑자기 R.java 파일이 사라짐
- 21. R.java 변수를 URI로 변환
- 22. R.java android lost
- 23. F-Droid.com의 R.java 파일
- 24. R.java 자동 생성 파일
- 25. 레이아웃 파일과 r.java
- 26. 안드로이드 : R.java 클래스의 오류
- 27. R.java 파일의 오래된 ID
- 28. 캔트를 찾는다. R.java
- 29. 자동 생성 JSF 구성 요소 ID의 중복 ID
- 30. R.Java 파일이 안드로이드 코드에서 생성되지 않으면 어떻게해야합니까?
xml 자체에 경고 (노란색 밑줄이 표시됨)가 표시됩니다. –
가능한 복제 http://stackoverflow.com/questions/6201517/how-can-i-use-duplicate-ids-in-different-layouts –