Sử dụng Layouts XML-Based
Trong khi đó là kỹ thuật có thể tạo ra andattach vật dụng để hoạt động của bạn hoàn toàn
thông qua các mã Java, như chúng tôi đã làm trong chương trước, cách tiếp cận phổ biến hơn là
sử dụng một tập tin bố trí dựa trên XML. Năng động instantiation của các vật dụng được dành riêng cho nhiều
kịch bản phức tạp, trong đó các vật dụng không được biết đến tại thời gian biên dịch (ví dụ,
Populating một cột nút radio dựa trên dữ liệu lấy từ Internet).
Với ý nghĩ đó, đó là thời gian để thoát ra khỏi XML và học cách đặt ra các hoạt động Android
views theo cách đó.
một diện XML-Based là gì?
Như tên cho thấy, một bố trí dựa trên XML là một đặc điểm kỹ thuật của mối quan hệ vật dụng '
cho mỗi định dạng inXML container mã hóa khác-và. Cụ thể, Android
xem xét bố trí dựa trên XML là nguồn lực, ANDAs như vậy, các tập tin bố trí được lưu trữ trong
reslayoutdirectory bên trong dự án Android của bạn.
Mỗi tập tin XML chứa một cây của các yếu tố xác định một cách bố trí của các vật dụng và container
tạo nên một View. Các thuộc tính của các phần tử XML là tài sản, mô tả
làm thế nào một widget nên xem xét hoặc làm thế nào một container nên cư xử. Ví dụ, nếu một nút
phần tử có giá trị thuộc tính của Android: kiểu chữ = "táo bạo", điều đó có nghĩa rằng các văn bản
xuất hiện trên khuôn mặt của nút nên được trả lại ina đậm phong cách font.
tàu SDK Android với một công cụ (AAPT) mà sử dụng bố cục. Công cụ này nên được
tự động gọi bởi chuỗi công cụ Android của bạn (ví dụ, Eclipse hoặc build.xml của Ant). Của
đặc biệt quan trọng với bạn như một nhà phát triển là aaptgenerates tập tin R.javasource
trong gendirectory của dự án của bạn, cho phép bạn truy cập vào bố trí và các vật dụng trong
những bố trí trực tiếp từ mã Java của bạn, aswill được chứng minh sau trong chương này.
Tại sao sử dụng XML-Based bố trí?
Hầu hết tất cả mọi thứ bạn sử dụng các file XML bố trí có thể đạt được thông qua mã Java. Cho
ví dụ, bạn có thể sử dụng setTypeface () để có một nút làm cho văn bản của nó in đậm, thay vì
8
www.it-ebooks.info
Chương 8: Sử dụng XML-Based Layouts 58
của việc sử dụng một tài sản trong một bố trí XML. Kể từ khi bố trí XML Chưa một tập tin để bạn có thể
theo dõi, chúng ta cần lý do chính đáng cho việc sử dụng tập tin như vậy.
Có lẽ lý do lớn nhất là hỗ trợ trong việc tạo ra các công cụ để xem định nghĩa, chẳng hạn
như một người xây dựng giao diện trong một IDE như Eclipse hoặc một chuyên dụng Android thiết kế giao diện như
DroidDraw. Xây dựng giao diện như vậy có thể, về nguyên tắc, tạo ra mã Java thay vì XML.
Thách thức là đọc lại định nghĩa trong các công cụ thiết kế để hỗ trợ chỉnh sửa, đó là xa
đơn giản khi các dữ liệu trong một định dạng có cấu trúc như ratherthan XML trong lập trình
ngôn ngữ. Hơn nữa, việc giữ các bit tạo ra tách từ mã viết tay
làm cho nó ít có khả năng là nguồn tùy chỉnh thủ công của ai đó sẽ nhận được clobbered bởi
tai nạn khi các bit tạo ra được tái sinh. XML tạo thành một trung đất đẹp
giữa cái gì đó là dễ dàng cho các nhà văn công cụ để sử dụng và cái gì đó là dễ dàng cho
các lập trình viên làm việc với bằng tay khi cần thiết.
Ngoài ra, XML như là một định dạng độ nét GUI isbecoming phổ biến hơn. Microsoft
Extensible Application Markup Language (XAML), Flex của Adobe, Google Web Google
Toolkit (GWT), và Mozilla XML User Interface Language (XUL) tất cả có một tương tự như
cách tiếp cận của Android: đặt các chi tiết bố trí trong một file XML và đưa lập trình
thông minh trong các tập tin mã nguồn (ví dụ, JavaScript cho XUL). Nhiều khuôn khổ giao diện ít nổi tiếng,
chẳng hạn như ZK, cũng sử dụng XML để xem định nghĩa. Trong khi "theo bầy đàn" không phải là
nhất thiết phải là chính sách tốt nhất, nó có lợi thế là giúp toease quá trình chuyển đổi
cho Android từ bất kỳ xem ngôn ngữ mô tả XML trung tâm khác.
OK, Vì vậy, What Does It Nhìn như thế nào?
Đây là Buttonfrom trước sampleapplication chương của, chuyển đổi thành một
tập tin XML layout, được tìm thấy trong các dự án Layouts / NowReduxsample:
tên lớp của các phụ tùng, Button, tạo thành tên của phần tử XML. Từ nút là một widget Android cung cấp, chúng tôi chỉ có thể sử dụng lớp trần name.If bạn tạo widget của riêng như lớp con của android.view.View, bạn sẽ cần phải cung cấp đầy đủ khai gói cũng như (ví dụ, com.commonsware .. android.MyWidget) Các phần tử gốc cần phải khai báo không gian tên XML Android: xmlns: android = "http://schemas.android.com/apk/res/android" Tất cả các yếu tố khác sẽ là con của rootand sẽ kế thừa mà . tuyên bố không gian tên Bởi vì chúng tôi muốn tham khảo nút này từ mã Java của chúng tôi, chúng ta cần phải cung cấp cho nó một định danh thông qua Android: idattribute. Chúng tôi sẽ bao gồm khái niệm này chi tiết hơn trong phần tiếp theo. www.it-ebooks.info Chương 8: Sử dụng XML-Based Layouts 59 Các thuộc tính còn lại là tài sản của Buttoninstance này: ? Android: văn bản: Cho biết văn bản ban đầu sẽ được hiển thị trên nút mặt (trong trường hợp này, một chuỗi rỗng) ? Android: layout_widthand Android: layout_height: Tell Android để có chiều rộng của nút và chiều cao đầy cha mẹ, mà trong trường hợp này là toàn bộ màn hình Những thuộc tính này sẽ được đề cập ingreater chi tiết trong Chương 10. Kể từ phụ tùng duy nhất này là nội dung duy nhất trong hoạt động của chúng tôi xem, chúng ta chỉ cần đơn này tố. Quan điểm phức tạp đòi hỏi phải có một cây toàn bộ các yếu tố, đại diện cho các vật dụng và container kiểm soát vị trí của họ. Tất cả các chương còn lại của cuốn sách này sẽ sử dụng các hình thức bố trí XML bất cứ khi nào thực tế, do đó, có hàng chục ví dụ khác về bố trí phức tạp hơn cho bạn nghiên cứu. gì với dấu hiệu @? Nhiều vật dụng và container cần phải chỉ xuất hiện trong cách bố trí XML nộp và không cần phải được tham chiếu trong mã Java của bạn. Ví dụ, một nhãn tĩnh (TextView) thường xuyên cần phải được bố trí trong các tập tin chỉ để cho biết nơi mà nó sẽ xuất hiện. Các loại của các yếu tố trong file XML không cần phải có Android: idattribute để cung cấp cho họ một . tên Bất cứ điều gì bạn dowant để sử dụng trong mã nguồn Java của bạn, tuy nhiên, cần một android:. id Quy ước là sử dụng @ + id / ... là idvalue, nơi mà các ... đại diện cho địa phương của bạn tên duy nhất cho các phụ tùng trong câu hỏi, cho sự xuất hiện đầu tiên của một idvalue được đưa ra trong bố trí tập tin của bạn. Trong layoutexample XML trong phần trước, @ + id / buttonis các bộ nhận diện cho Buttonwidget. Các lần xuất hiện thứ hai và sau đó trong cùng một tập tin bố trí phải thả các dấu +-một tính năng chúng tôi sẽ sử dụng trong Chương 10. Android cung cấp một vài Android đặc biệt: idvalues, của mẫu @ android: id / .... Bạn sẽ thấy một số các giá trị này trong các ví dụ khác nhau trong suốt cuốn sách này. và như thế nào Chúng tôi Gắn Những đến Java? Cho rằng bạn đã cẩn thận thiết lập các vật dụng và container cho quan điểm của bạn trong một bố trí tập tin XML có tên main.xmlstored trong res / bố trí, tất cả các bạn nhu cầu là một trong những tuyên bố trong onCreate () gọi lại hoạt động của bạn để sử dụng bố trí: setContentView (R.layout.main); Đây là setContentView cùng (), chúng tôi sử dụng trước đó, đi qua nó một thể hiện của một Xem lớp con (trong trường hợp đó, một nút). View Android được xây dựng, được xây dựng từ cách bố trí của chúng tôi, được truy cập từ mã tạo ra Rclass. Tất cả các bố cục có thể truy cập dưới R.layout, keyed bởi tên cơ sở của tập tin bố trí; ví dụ, res / layout / main.xml kết quả trong R.layout.main.
đang được dịch, vui lòng đợi..
