2012-01-20 33 views
6

Cho đến bây giờ tôi đã sử dụng TabHost cho Ứng dụng của mình để tạo 3 Tab. Mỗi Tab được biểu diễn bằng một Hoạt động mà tôi nhận được bố cục qua setContentView(R.layout.something) từ một tệp XML. Vì vậy, 3 Tab, 3 hoạt động và 3 tệp XML.Chuyển từ TabHost sang Fragments bằng Viewpager: Nơi đặt tất cả Mã của tôi

Bây giờ tôi đã tình cờ gặp các mảnh vỡ, đó là cách mới và tốt hơn để đi, vì vậy đây là câu hỏi của tôi.

Phân đoạn xử lý giao diện người dùng, do đó hãy tạo 3 Phân đoạn được xử lý bởi FragmentPagerAdapter. Bên trong mỗi Fragment, tôi tạo nội dung thông qua các tệp XML.

Nhưng tôi phải đặt tất cả mã nào về nút nào làm gì, đọc từ cơ sở dữ liệu hoặc ghi vào đó vv. Cho đến nay, tất cả đều nằm trong mỗi Hoạt động được tải bởi Tabhost.

Tôi có đặt tất cả mã đó vào các phương pháp ... onCreate() v.v. của mỗi đoạn hoặc có cách nào tốt hơn và rõ ràng hơn để làm điều đó không?

Trả lời

3

Cách tiếp cận bạn đề xuất là khá tốt!

Về điều cần làm ở đâu, tôi khuyên bạn nên làm bất cứ điều gì để tạo/thay đổi giao diện người dùng của trang (đoạn) trong onCreateView() của từng đoạn và bất kỳ logic nào (đọc cơ sở dữ liệu v.v.) onActivityCreated(). Tôi khuyên bạn nên chỉ đạo rõ ràng của onCreate() trong một đoạn, bởi vì điều này được gọi trước khi nó được kết hợp với một hoạt động (ngăn cản bạn làm thigs chẳng hạn như các truy vấn quản lý để contentproviders). Trình nghe nhấp chuột có thể được xác định trong chế độ onCreateView hoặc onActivityCreated().

Mọi thứ cụ thể hơn, hãy cho tôi biết. Đừng quên, Máy nhắn tin chuẩn không bao gồm hàng tiêu đề/biểu tượng tab, nhưng Google ViewPagerIndicator và bạn sẽ tìm thấy thư viện mà bạn có thể sử dụng để thực hiện việc này.

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