Danh mục

Bài giảng Lập trình di động android: Phần 2 - ThS.Bùi Trung Úy

Số trang: 44      Loại file: pdf      Dung lượng: 5.53 MB      Lượt xem: 12      Lượt tải: 0    
Hoai.2512

Xem trước 5 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tiếp nội dung phần 1, Bài giảng Lập trình di động android: Phần 2 cung cấp cho người học những kiến thức như: fragment và giao diện nâng cao; quản lý dữ liệu trong android. Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình di động android: Phần 2 - ThS.Bùi Trung Úy Bài giảng Lập Trình Di Động - Android Chương 4. FRAGMENT VÀ GIAO DIỆN NÂNG CAO Trong chương này, chúng ta sẽ tìm hiểu về khái niệm phân mảnh giao diện, cách sử dụng chúng để tạo những giao diện phức tạp và một số đối tượng điều kiển hộp thoại và điều kiển hiển thị dạng danh sách. 4.1. Android Fragment 4.1.1. Fragment là gì? Trong phần trước chúng ta đã tìm hiểu qua Activty cơ bản là giao diện của một “màn hình” ứng dụng, mỗi màn hình là một Activity. Tuy nhiên khi các máy tính bảng ra đời với màn hình lớn hơn rất nhiều so với điện thoại truyền thống, cho phép thiết kế với nhiều loại view khác nhau, và phát sinh nhu cầu dùng lại các view này trên các màn hình khác nhau (điện thoại và máy tính bảng). Khái niệm fragment được sinh ra nhằm phục vụ nhu cầu đó. Có thể hiểu fragment như các “tiểu Activity”, chứa tập hợp các view khác bên trong nó. Fragment luôn luôn được chứa trong một Activity hoặc một fragment khác, mỗi Activity có thể chứa một hoặc nhiều fragment . Một ví dụ điển hình của việc sử dụng fragment là trường hợp thiết kế “master-detail”, bao gồm 2 view: view tổng quan chứa danh sách các đối tượng (danh sách tiêu đề các bài báo chẳng hạn), và view chi tiết, hiển thị nội dung của đối tượng (bài báo) đang được chọn. Mỗi view như vậy được đặt trong 1 fragment. Trên màn hình điện thoại, do kích thước hạn chế, 2 fragment này sẽ nằm trong 2 activity khác nhau, trong khi đối với màn hình máy tính bảng, 2 fragment này nằm trên cùng một Activity. Thiết kế này giúp việc dùng lại code được tối đa, logic của ứng dụng nằm trong 2 fragment, được dùng lại cho cả điện thoại và máy tính bảng, còn Activity chỉ là khung chứa tối thiểu mã nguồn. ThS. Bùi Trung Úy 90 Bài giảng Lập Trình Di Động - Android Khái niệm fragment mới được đưa vào từ phiên bản Android 3.0 HoneyComb, tuy nhiên tính năng này cũng được Google bổ sung cho các API thấp hơn (từ Level 4) thông qua thư viện hỗ trợ Android Support Library v4. Yếu tố chính trong việc sử dụng Fragment là nó có thể giúp chúng ta xây dựng các giao diện một cách chủ động và linh hoạt để có thể thích ứng với các kiểu màn hình có kích thước khác nhau từ điện thoại cho đến máy tính bảng, nói chính xác hơn là tối ưu hóa giao diện cho từng loại thiết bị, kích thước và độ phân giải khác nhau. Mỗi Fragment là một module độc lập có ràng buộc chặt chẽ vào Activity mà nó gắn vào. Fragment có thể được tái sử dụng trong nhiều Activity, và trong một activity có thể được gắn vào nhiều Fragment. Dưới đây là một số ưu điểm nổi bật mà Fragment mang lại: Module hóa (modularity): Với các Activity phức tạp thì code sẽ được implement ở các Fragment. Mỗi Fragment là một module độc lập. Điều này sẽ làm cho code dễ tổ chức và bảo trì tốt hơn. Tái sử dụng (reusability): Viết code implement các tương tác với người dùng hoặc các phần UI vào fragment để có thể chia sẻ chúng với các Activity khác. Hỗ trợ đa màn hình: Fragment cung cấp cách thức để trình bày giao diện người dùng (UI) phù hợp và tối ưu cho các loại thiết bị Android có kích thước màn hình và mật độ điểm ảnh khác nhau. 4.1.2. Sử dụng Fragment * Tạo mới Fragment Để tạo một fragment mới, bạn tạo lớp và thừa kế từ lớp Fragment. Thiết lập giao diện và implement các chức năng đóng gói của nó. ThS. Bùi Trung Úy 91 Bài giảng Lập Trình Di Động - Android Để thiết lập giao diện cho fragment, bạn ghi đè phương thức onCreateView() và thực hiện gắn UI cho fragment, phương thức này được hệ thống Android gọi khi đến khi fragment vẽ layout của nó. public class DetailsFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Đọc file xml tạo ra đối tượng View. View view = inflater.inflate(R.layout.details_fragment, container, false); return view; } } Không giống như Activity, fragment không cần phải khai báo trong Manifest bởi vì Fragment chỉ tồn tại khi nhúng nó vào một Activity và vòng đời sống cũng phụ thuộc Activity này. * Gắn fragment vào Activity Cách 1: Thực hiện tham chiếu Fragment từ giao diện XML của Activity Để gắn fragment vào giao diện của Activity, ta sử dụng thẻ như sau: Cách 2: Dùng mã nguồn Java Mỗi Activity có một FragmentManager để quản lý các fragment bên trong nó. FragmentManager cung cấp các phương thức sử dụng để truy cập vào fragment hiện tại đã được gắn vào Activity: FragmentManager fragManager = getFragmentManager(); Sử dụng FragmentTransaction để thêm fragment vào Activity: FragmentTransaction fragTransaction = fragManager.beginTransaction(); fragTransaction.add(R.id.details_fragment, new DetailsFragment()); fragTransaction.commit(); Ngoài ra, FragmentTransaction cũng có các thao tác khác như thêm, xóa hay thay thế fragment, các thao tác này được gọi là một giao dịch. Mỗi giao dịch có thể gồm nhiều thao tác thực hiện tại cùng thời điểm. FragmentTransaction fragTransaction = fragManager.beginTransaction(); Fragment fragment = fragManager.findFragmentById(R.id.list_fragment); fragTransaction.remove(fragment); fragTransaction.commit(); ThS. Bùi Trung Úy 92 Bài giảng Lập Trình Di Động - Android 4.1.3. Vòng đời của Fragment Cũng giống như activity, vòng đời của một fragment xảy ra khi trạng thái của nó thay đổi. Một sự kiện trong vòng đời của Fragment xảy ra khi chúng ta có thể nhìn thấy fragment đang hoạt động, hoặc là khi fragment không sử dụng được hoặc bị destro ...

Tài liệu được xem nhiều: