2011-08-04 36 views
9

Phải có ID tài nguyên cho các chế độ xem trong bố cục XML là duy nhất trên tất cả các bố cục?ID tài nguyên Android

Ví dụ: tôi đang làm việc trên một ứng dụng trình quản lý công thức nhỏ. Tôi có một tập tin bố trí để thêm một thành phần mới. Trong layout này, tôi có một EditText cho thành phần mà tôi muốn gọi là "edt_name". Nhưng tôi e rằng cái tên này quá chung chung; ví dụ. Tôi cũng có thể có EditText cho tên công thức nấu ăn, tên quy trình nấu ăn, v.v. trong các tệp bố cục XML khác.

Tuy nhiên, tôi cũng không muốn làm cho nhãn phức tạp hơn mức cần thiết. Tôi muốn tránh gọi EditText nói trên "edt_name_new_ingredient" nếu tôi có thể.

Tôi rất tò mò về cách các nhà phát triển tổ chức tài nguyên của họ nói chung. Android không hỗ trợ các thư mục con cho các tài nguyên theo như tôi biết, vì vậy các lược đồ đặt tên có thể thực sự lộn xộn.

Trả lời

6

Không có id tài nguyên nào không phải là duy nhất trên bố cục xml khác nhau cách chúng phải là duy nhất trong một tệp xml cụ thể.

+0

Nhưng khi tôi truy cập R.id. (view_id) trong tệp java của tôi, tôi nhận được danh sách id từ tất cả các chế độ xem? Tôi vừa thử đặt tên hai EditBox trong hai tệp bố cục XML khác nhau có cùng tên. Tôi đã không nhận được một thông báo lỗi, nhưng khi tôi sử dụng R.id. (view_id) tôi chỉ có một view_id, và tôi không biết EditText id nào đề cập đến! –

+5

bạn đã đúng ... nhưng Android chọn id chế độ xem từ bố cục xml mà bạn đã đặt bằng phương thức setContentView trong hoạt động của mình, từ tất cả id chế độ xem. mà bạn đang nhận được trong danh sách ... đó là lý do tại sao bạn không nhận được bất kỳ lỗi nào. Hãy thử thay đổi Id cho edittext trong hai xml ... sau đó bạn có thể có được một hình ảnh tốt hơn về những gì đang xảy ra –

+0

Tôi chỉ thử nghiệm những gì bạn nói và bạn nói đúng, success_anil. R.id. (view_id) hiển thị tất cả các chế độ xem trên tất cả các bố cục, nhưng nếu chế độ xem không được tìm thấy trong bố cục bạn hiện đang sử dụng, chương trình sẽ bị lỗi. Vì vậy, nếu bạn có hai chế độ xem có cùng id trên các tệp bố cục khác nhau, nó sẽ tự động sử dụng một tệp trong tệp bố cục hiện tại của bạn. –

2

ID tài nguyên được đặt tên trong gói. Khi bạn truy cập một tài nguyên (ví dụ XML), tên gói được đặt ngầm định thành tên hiện tại. Bạn có thể có các tệp tài nguyên khác trong một gói khác và tham chiếu đến các tệp trong mã hoặc XML của bạn (đây là cách mà một trong những tài nguyên nền tảng đi kèm với SDK).

Tương tự như trong mã, bạn có thể truy cập lớp khác nhau của R lớp và sử dụng tài nguyên của nó, nhưng tất cả những người trong cùng một gói phải có tên duy nhất.

Thông tin khác có thể tìm thấy trong tài liệu here.

+0

Cảm ơn bạn đã liên kết. Tôi đang xây dựng ứng dụng của mình như một dự án duy nhất, vì vậy tôi chỉ có một lớp "R". Tôi đoán điều đó có nghĩa là tất cả các quan điểm của tôi trên tất cả các tệp bố cục của tôi phải có id duy nhất? –

Các vấn đề liên quan