2011-09-12 40 views
10

Có cách nào để truy cập chế độ xem bố cục từ lớp không có nguồn gốc Hoạt động không? Tôi đang tạo một lớp Accordion và cần truy cập vào một số yếu tố giao diện người dùng của hoạt động. Tôi đang chuyển ngữ cảnh của hoạt động tới hàm tạo của lớp accordion của tôi, nhưng API findViewById chỉ có sẵn từ lớp Activity. Tôi cũng không muốn vượt qua trong một ví dụ về hoạt động của tôi vì nó dường như bị cau mày do rò rỉ bộ nhớ tiềm ẩn.Gọi findViewById() từ bên ngoài hoạt động

Trả lời

1

Tôi đã thông qua một phiên bản của một trong các khung nhìn vào hàm tạo của lớp.

2

Ngữ cảnh hoạt động thực tế là chính lớp Hoạt động. Giả sử rằng đối tượng này sẽ sống bên trong chỉ một Activity, nó sẽ an toàn để truyền đối tượng của Activity type cho nó. Nếu không, hãy nghĩ đến việc tái cấu trúc lớp Accordion của bạn.

2

Đây là thứ có thể hữu ích.

Tôi chưa bao giờ thử một cái gì đó như thế này. Tôi cũng không biết nếu nó không bị bất kỳ rò rỉ bộ nhớ nào. Nhưng nó làm những gì bạn hỏi :) "Gọi findViewById() từ bên ngoài một hoạt động"

15

Tôi chắc chắn bạn chỉ có thể chuyển một hoạt động dưới dạng tham số, ví dụ:

public void initSouthViews(Activity activity) { 
    for (int i = 0; i < southScores_.length; ++i) { 
     southScores_[i] = (EditText) activity.findViewById(10); 
    } 
} 
+0

Bạn nói đúng. Nó hoạt động :) – boctulus

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