Tôi có một ListView trong một Activity và tôi đang thiết lập một adapter tùy chỉnh cho ListView.Các adapter trong Android có phải là các lớp bên trong tĩnh hoặc các lớp bên trong không tĩnh
lớp bộ chuyển đổi của tôi nên là:
private static class MyAdapter extends ArrayAdapter
hoặc
private class MyAdapter extends ArrayAdapter
Tôi đoán nó nên không có sự chênh lệch càng lâu càng adapter kèm trong tài liệu tham khảo hoạt động nhưng muốn xác nhận rằng.
(Dành cho người đọc trong tương lai) Câu hỏi cuối cùng là ngược. Nếu bạn có một lớp bên trong tĩnh và cần truy cập vào hoạt động/bối cảnh, bạn nên sử dụng một WeakReference (nếu có bất cứ điều gì có thể sống lâu hơn hoạt động). Nếu lớp không phải là tĩnh và bên trong, nó có một tham chiếu mạnh tiềm ẩn đối với lớp bên ngoài. Trong trường hợp đó, bạn cũng cần phải cẩn thận về cách sử dụng bộ điều hợp. Sử dụng tĩnh có thể giúp tìm rò rỉ tiềm ẩn, nhưng bổ sung thêm chi phí trong việc truyền xung quanh một ngữ cảnh/weakreference. – lilbyrdie
Ngoài ra, trong bất kỳ cuộc gọi nào trong bộ điều hợp có đối tượng Xem, ngữ cảnh có sẵn (View.getContext()). Bạn có thể sử dụng instanceof để đảm bảo đó là hoạt động của bạn. – lilbyrdie