Drupal Consultant
Started my career as a drupal8 developer in EM Solutions . I love learning Web technologies like HTML, CSS, PHP, Jquery Ajax and Drupal backend . Currently working as a drupal backend developer.
Đây là cách tạo một dự án Android mới trong Eclipse (xem Hình 1):
com.example.helloandroid
hoặc vùng tên riêng của bạn. Tên gói theo cùng các quy tắc như các tên gói trong ngôn ngữ Java.Activity
của Android. Một hoạt động đơn giản là một lớp có thể chạy và thực hiện một số công việc. Nó có thể có một giao diện người dùng. Một ứng dụng có thể chứa một hoặc nhiều hoạt động. Thông thường chúng có mối quan hệ 1:1 với các màn hình có trong một ứng dụng. Một ứng dụng di chuyển từ một hoạt động này sang một hoạt động khác bằng cách gọi một phương thức có tên là startActivity()
hay startSubActivity()
.Hình 1. Tạo một dự án Android mới
Hello Android là một dự án Android cơ bản, chỉ đơn giản in Hello World trên màn hình. Nó có vai trò sau trong bài viết này:
Để xem các tệp và phần tài nguyên khác của dự án Android hãy sử dụng khung nhìn Package Explorer (Trình thám hiểm gói) trong Eclipse (Window > Show View > Package Explorer). Dự án Android vừa được tạo ra sẽ bao gồm các thứ sau (xem Hình 2):
Hình 2. Các nội dung của dự án Hello Android
Nó bao gồm:
Hình 3. Giao diện người dùng cho tệp main.xml
Hãy xem xét các nội dung thực tế của thư mục project (dự án) trên đĩa. Mở Navigator View (Khung nhìn của dẫn hướng) trong Eclipse (Window > Show View > Navigator). Bạn sẽ nhận được cấu trúc cho dự án HelloWorld như trong Hình 4. Ngoài các tệp class được biên dịch, bạn nhận được ba tệp sau đây trong thư mục bin:
Chúng ta hãy xem xét MainActivity.java
.
Liệt kê 1. Tệp MainActivity.java
package com.example.helloandroid; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
Những điều cần lưu ý về tệp này là:
MainActivity
mở rộng một lớp Android cơ bản có tên là Activity
, nằm trong gói android.app
.onCreate()
là điểm nhập mặc định cho hoạt động này và phải được triển khai thực hiện cho từng hoạt động mới. Nó nhận một đối số kiểu Bundle
(bó). Các tùy chọn và các tham số cần thiết cho việc tạo hoạt động này được chuyển vào tham số này.setContentView()
có trách nhiệm tạo giao diện người dùng chính sử dụng đối số R.layout.main
. Đây là một hằng số được định nghĩa trong R.java và biểu diễn cách bố trí chủ yếu có trong các tài nguyên của ứng dụng đó.
Tệp XML này mô tả giao diện người dùng (UI) của ứng dụng. Một hoạt động có thể tham chiếu đến UI này. Tuy nhiên, UI này không tự ràng buộc nó vào bất kỳ hoạt động nào. Một UI được xây dựng bằng cách sử dụng các bố trí và các widget. Tệp main.xml
mà Eclipse xây dựng theo mặc định gồm có một LinearLayout duy nhất, có nghĩa là tất cả các phần tử được sắp xếp trong một cột duy nhất. Rồi nó định nghĩa một textView
, được dùng để hiển thị văn bản tĩnh không chỉnh sửa được. Trong trường hợp này, chuỗi "hello" được định nghĩa trong tệp strings.xml (ký hiệu '@' dùng để chỉ một tệp được định nghĩa trong thư mục res). Mỗi phần tử khung nhìn bổ sung có các thuộc tính, như là layout_height
(độ cao_ bố trí) và layout_width
(độ rộng_bố trí), v.v.
Hình 5. Tệp Main.xml và khung nhìn properties (các đặc tính)
Một cách dễ dàng để làm việc với tệp main.xml
là thông qua khung nhìn các đặc tính (Window > Show View > Other > General > Properties). Khi chọn một khung nhìn cụ thể trong khung nhìn phác thảo, tab các đặc tính được điền đủ tất cả các thuộc tính có khả năng của khung nhìn đó, như trong Hình 5. Hầu hết các thuộc tính này chỉ có thể chọn một số giá trị cố định, và các giá trị cố định này lại có thể được chọn từ một trình đơn thả xuống bên cạnh mỗi thuộc tính trong tab các đặc tính. Ví dụ, để thiết lập thuộc tính layout_height
, bạn có thể nhìn thấy hộp thả xuống và nhận ra rằng nó chỉ có hai giá trị được phép: wrap_content
và fill_parent
. (wrap_content
sẽ chỉ dựng lên khung nhìn theo kích thước ban đầu của nó, trong khi fill_parent
sẽ co giãn nó để bao trùm toàn bộ chiều cao hoặc chiều rộng hoặc cả hai).
Lưu ý: Với các thuộc tính layout_height
và layout_width
, bạn cũng có thể xác định kích thước theo hai đơn vị sau: (a) Các điểm ảnh độc lập với mật độ (dp) — Kích thước này cho phép bố trí giống nhau khi được xem trên các thiết bị có các kích thước màn hình khác nhau. Ví dụ: layout_width
= 10dp; (b) Các điểm ảnh độc lập co giãn được (sp) — Tương tự như dp, nhưng đây là tiêu chuẩn được khuyến nghị dành cho các máy điện thoại di động. Ví dụ: layout_width
= 10sp.) Một điều quan trọng khác cần lưu ý là nếu bạn muốn tham khảo một số khung nhìn/widget nào đó từ trong mã Java, thì cần phải có một mã định danh (ID) duy nhất. Nếu bạn sử dụng tab bố trí của tệp main.xml
để kéo và thả một widget, thì ADT sẽ tự động tạo một ID cho widget đó, có dạng sau "@+id/someView." Sau đó, trong mã Java, sau đó bạn có thể tham chiếu nó như R.id.someView
.