2013-07-22 27 views
6

Tôi có một đoạn mã sử dụng AndroidAnnotations mà là rất tương tự như tìm thấy tại địa chỉ:Thêm đối số cho AndroidAnnotation tiêm đậu

https://github.com/excilys/androidannotations/wiki/Adapters-and-lists

Tuy nhiên - Tôi muốn vượt qua một cuộc tranh cãi vào Danh sách bộ chuyển đổi để xác định danh sách nào - tức là

@AfterInject 
void initAdapter() { 
    persons = personFinder.findAll(companyName); 
} 

Cách tốt nhất để liên kết tên công ty với bộ điều hợp là gì? Tôi không thể sử dụng hàm tạo với AnroidAnnotations - và @AfterViews được gọi trước @AfterViews của đoạn cha, vì vậy tôi không thể gọi các setters sau đó.

Tôi hiện đang bị tấn công trong cuộc gọi để đặt thông số theo cách thủ công, sau đó làm mới chế độ xem và xóa @AfterViews - nhưng nó khó chịu và không đáng tin cậy khi tôi sao chép mẫu xuống phân cấp.

EDIT

Chỉ cần gọi setter hoạt động trong trường hợp đơn giản nhất - và là những gì tôi đang có. Nhưng không hoạt động tốt trong trường hợp phức tạp hơn. tức là

EFragment-> EViewGroup-> EBean ListAdapter

Vì tôi không thể sử dụng các nhà xây dựng, tôi phải đợi cho đến khi hệ thống phân cấp đầy đủ được trả lại và đặt ra trước khi đoạn kể ViewGroup mà Công ty cho thấy công ty thông tin, lần lượt cho ListAdapter biết công ty nào để tôi có thể nhận được người nào, v.v. Không mất nhiều công sức để nó trở nên rất lộn xộn và nếu dữ liệu của tôi ở trên web - giao diện người dùng có thể sẽ hiển thị như một trang web từ những năm 90. Tôi đã hy vọng sẽ sử dụng một cái gì đó như @Extras - hoặc có một cách để vượt qua các đối số cho @AfterInject để sử dụng, hoặc thậm chí chỉ cần đặt companyId trong Fragment Context mà không ràng buộc ListAdapter của tôi để chỉ làm việc với một loại Fragment. ..

+0

tôi không thể hiểu tại sao một setter cho COMPANYNAME trong t anh ta không đủ. Tôi nghĩ rằng một setter đơn giản của người với notifyDataSetChanged() là cách đơn giản nhất. –

+0

Chắc chắn hoạt động trong trường hợp đơn giản nhất - và là những gì tôi hiện có. – Silver

Trả lời

2

Hãy thử điều này

@EFragment 
public class MyFragment extends Fragment { 

    @FragmentArg("myStringArgument") 
    String myMessage; 

    @FragmentArg 
    String anotherStringArgument; 

    @FragmentArg("myDateExtra") 
    Date myDateArgumentWithDefaultValue = new Date(); 

} 

Nguồn:

https://github.com/excilys/androidannotations/wiki/FragmentArg

+0

Đừng nghĩ rằng điều này đã được phát hành khi tôi đặt câu hỏi ... Nhưng đó là câu trả lời. Tôi nghĩ. – Silver

+0

Điều gì sẽ xảy ra nếu lớp mà chúng tôi muốn thêm tham số không phải là phân đoạn mà là một bean thông thường? –

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