2012-07-03 14 views
9

Tôi đang làm việc để chuyển ứng dụng từ cửa sổ di động sang Android và tôi đã gặp phải một chút vấn đề. Ứng dụng hiện có sử dụng mô hình MVP và có các lớp "presenter" riêng biệt, được sử dụng lại trong cổng (nó là một ứng dụng rộng rãi và viết lại nó là không thể, và mã C# được sử dụng lại bằng mono cho android). Chúng có một cái nhìn thực hiện một giao diện, mà trong android tôi đã đạt được bằng cách tạo ra các hoạt động mà thực hiện các giao diện thích hợp, instantiating một người trình bày và đi qua mình như một đối số. Tất cả điều này dường như làm việc tốt cho mục đích của chúng tôi, hoặc cho đến khi bánh sandwich kem xuất hiện và tôi đã cố gắng thực hiện nó bằng cách sử dụng các mảnh vỡ.Điều chỉnh mô hình Trình xem mô hình cho Android với các tab phân đoạn

Khá nhiều hoạt động sử dụng tab và để sử dụng thanh tác vụ và một số tính năng mới khác, tôi đang cố gắng chuyển đổi hoạt động theo tab thành phân đoạn tab với người xem và đây là nơi tôi đang truy cập một số vấn đề. Từ những gì tôi đã đọc thực hiện mỗi tab như là một mảnh có vẻ là phương pháp ưa thích, nhưng tôi bối rối như thế nào chính xác tôi có thể cho phép người trình bày để giao tiếp với các mảnh thông qua các hoạt động. Hiện tại, người trình bày gọi các phương thức giao diện của hoạt động mà sau đó truy cập trực tiếp các trình quay, văn bản vv để nhận và đặt các giá trị theo yêu cầu. Mỗi phần tử ui này được khai báo trong hoạt động này là tầm thường. Nếu tôi di chuyển tất cả các phần tử ui này thành các mảnh, tuy nhiên dường như tôi không thể truy cập chúng mà không triển khai một bộ giao diện hoàn toàn mới giữa mỗi hoạt động và phân đoạn. Tôi đã cố gắng tạo tham chiếu trong hoạt động cho các phần tử ui trong các đoạn (bằng cách xem phần gốc của đoạn và sau đó tìm khung nhìn tôi muốn bên trong), tuy nhiên trình xem không phải lúc nào cũng tải các đoạn sao cho nó không hoạt động, và ngay cả khi nó đã tải chúng, bố cục không bị thổi phồng cho đến khi hoạt động ở trạng thái đang chạy, vì vậy tôi luôn trả về giá trị null.

Tôi biết đó là một câu hỏi lạ, nhưng làm cách nào để tôi cho phép các lớp trình bày của mình tương tác với các phần tử ui hiện được lưu trữ trong các tab phân đoạn riêng biệt? Tôi cảm thấy như tôi phải đi về nó một cách hoàn toàn sai lầm nhưng tôi chỉ không thể xem nó nên được thực hiện như thế nào, vì vậy nếu có ai đó có thể đưa ra một số lời khuyên về việc tôi có thể đi về điều đó sẽ tuyệt vời như thế nào.

+0

Có cùng một tình trạng khó xử, sử dụng MVP với các mục tùy chỉnh trong RecyclerView và ViewPager là nỗi đau trong @ss để làm việc với –

Trả lời

1

Cách tạo một người trình bày duy nhất cho tất cả các Phân đoạn trong Phân đoạn hành động của bạn và sau đó để người trình bày đơn này triển khai giao diện cho từng Phân đoạn (còn gọi là Tab). Sau đó, khởi tạo trình bày này từ cá thể FragmentActivity của bạn mà từ đó người trình bày sẽ có một tham chiếu đến tất cả các Fragments.

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