Android의 다른 레이아웃에서 동일한 ID를 사용할 수 있습니까?
저는 Android 개발이 처음입니다. 이미지와 TextViews
다른 Layout
XML 파일 에 동일한 ID를 사용해도 괜찮 습니까?
eclipse가 나를 위해 자동으로 나열 할 때 프로젝트의 모든 레이아웃 변수를 나열하므로 충돌할까요? 지금까지 다른 레이아웃에서 동일한 ID를 사용하는 데 어떤 문제도 발견하지 못했지만 장기적으로 걱정됩니다.
레이아웃마다 다른 ID를 사용하는 것이 좋습니다. 장기적으로 레이아웃이 많고 ID가 많으면 구분하기가 매우 복잡해집니다.
나는 일반적으로 다음과 같이 내 ID의 이름을 지정 layoutName_elementId
합니다.
특히 자동 완성을 사용할 때 찾고있는 ID를 쉽게 찾을 수 있습니다. 레이아웃 이름 만 입력하면 해당 레이아웃의 모든 ID가 표시됩니다.
레이아웃 및 ID에 대한 자세한 정보는 여기 에서 찾을 수 있습니다 .
즐거운 코딩,
짧은 대답 : 예, 가능합니다.
긴 답변 : 레이아웃의 일부에 대한 참조를 얻기 위해 findViewById ()를 사용할 때마다 메서드가 현재 부풀린 레이아웃에서만 해당 뷰를 검색하기 때문에 이렇게 할 수 있습니다. 따라서 다른 레이아웃에 동일한 ID를 가진 다른 뷰가 있어도 Android는 해당 뷰를 찾지 않습니다.
개발자 API 가이드에 따르면 :
ID는 전체 트리에서 고유 할 필요는 없지만 검색중인 트리 부분 내에서 고유해야합니다 (종종 전체 트리 일 수 있으므로 가능하면 완전히 고유하는 것이 가장 좋습니다).
따라서 짧은 대답은 필수는 아니지만 가능한 충돌을 피하는 것이 좋습니다.
권장하지 않습니다. 나중에.을 리팩터링해야하는 view
id
경우 Android 스튜디오가 모든 XML
파일과 클래스 에서 리팩터링하여 문제가 발생할 수 있기 때문 입니다.
그러나 id
일부 추상이 있고 여러 레이아웃을 재사용하는 경우 와 같이 동일하게 사용해야하는 경우도 있습니다.
프로젝트에 views
동일한 항목 이 여러 개 있고 id's
리팩터링해야하는 경우 수동으로 수행하고 IDE에서 빌드 기능을 사용하지 않고 레이아웃 id
내부의 대상보기에서 변경 XML
한 다음 레이아웃 내부 의 빨간색 오류를 수정합니다.
참고 URL : https://stackoverflow.com/questions/12333624/can-i-use-the-same-id-in-different-layout-in-android
'developer tip' 카테고리의 다른 글
Vim에서 Alt 키를 매핑 할 수 있습니까? (0) | 2020.10.04 |
---|---|
100 % 너비가없는 디스플레이 블록 (0) | 2020.10.04 |
Ruby on Rails의 시작 / 홈 페이지-모범 사례 (0) | 2020.10.04 |
SQlite 가장 가까운 위치 얻기 (위도와 경도 포함) (0) | 2020.10.04 |
Android : Toast와 함께 onBackPressed ()를 사용하는 적절한 방법 (0) | 2020.10.04 |