2013-04-16 29 views
6

Tôi đang tạo tùy chọn cho ứng dụng của mình và nhận thấy một số ví dụ lưu trữ XML trong res/layout và lưu trữ chúng trong res/xml. Có một lý do hoặc thực hành tốt nhất để lưu trữ chúng trong một so với khác không? Tôi đã có một loạt các tập tin bố trí trong thư mục res/layout của tôi, do đó, nó có ý nghĩa để đặt các tập tin bố trí ưu tiên trong res/xml?Khi nào sử dụng thư mục res/xml vs.res/layout trong Android

+2

Tùy chọn = res/xml; Bố cục khác = res/layout – gauravsapiens

Trả lời

6

Các xmls ưu tiên phải được đặt trong thư mục res/xml. res/layout chỉ dành cho bố cục xml.

+0

Nhưng không phải là xml cho sở thích cũng được coi là bố cục? Bố cục của nó cho hoạt động của giao diện người dùng tùy chọn. –

+1

khi bạn tạo tùy chọn tùy chỉnh chỉ với bố cục tùy chỉnh thì bố cục của bạn sẽ là bố cục và có thể được đặt trong res/layout – stinepike

2

Các phương pháp hay nhất cho vị trí tệp XML ưu tiên phải được nêu như here: "Bạn phải lưu tệp XML trong thư mục res/xml /. Mặc dù bạn có thể đặt tên tệp bất cứ điều gì bạn muốn, nó có tên là preferences.xml".

Mặc dù tôi không thể tìm thấy xác minh, không gian tên tùy chỉnh cho ứng dụng của bạn là tên gói được chỉ định trong tệp AndroidManifest.xml.

xmlns:android="http://schemas.android.com/apk/res/android" package="com.mydomain.app"

Bạn có thể sử dụng không gian tên này cho các thuộc tính tùy chỉnh XML mà tham khảo điều khiển tùy chỉnh và sở thích. Ví dụ, bao gồm một cái gì đó như thế này trong các tập tin XML:

xmlns:android="http://schemas.android.com/apk/res/android" xmlns:myname="http://schemas.android.com/apk/res/com.mydomain.app"

Trong file XML cùng này bao gồm một số thành phần tùy chỉnh:

<com.mydomain.app.MyListPreference 
     android:key="pref_item1" 
     android:title="@string/item1" 
     android:summary="@string/pref_mysummary" 
     myname:someAttr="500" /> 

Các someAttr vẫn cần phải được xác định trong thư mục các giá trị trong tệp attr.xml. Các attr được khai báo trong một phong cách cho các thành phần như sau:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <declare-styleable name="com.mydomain.app.MyListPreference"> 
     <attr name="someAttr" format="integer" /> 
    </declare-styleable> 
</resources> 

Trong lớp định nghĩa các thành phần tùy chỉnh hoặc sở thích của bạn nhận được các thuộc tính sử dụng:

mDefaultValue = attrs.getAttributeIntValue(
"http://schemas.android.com/apk/res/com.mydomain.app", ATTR_DEFAULT_VALUE, 50); 
+0

Cảm ơn lời giải thích này. – Deses

3

This là từ Google.

sử dụng res/xml/cho các tệp XML tùy ý có thể đọc tại thời gian chạy bằng cách gọi Resources.getXML().

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