编辑: 这是我现在要使用的。下面提供了较旧的“更轻松”的解决方案。
MyFragment extends Fragment implements CustomAdapter.EventListener { public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { CustomAdapter adapter = new CustomAdapter(..., this); } void onEvent(int data) { doSomething(data); }}CustomAdapter extends baseAdapter { EventListener listener; public interface EventListener { void onEvent(int data); } public CustomAdapter(..., EventListener listener) { this.listener = listener; } ...}现在,可以从适配器中的任何位置调用
listener.onEvent(data);该片段中的方法。
而且,除了通过构造函数提供侦听器之外,我们还可以在适配器中添加另一个方法,例如
registerListener(EventListenereventListener),然后在需要时维护侦听器列表。
旧答案:
解决方案1:将适配器设为片段的内部类,以便可以直接调用该方法。
解决方案2:更新您的适配器构造函数以接受Fragment作为参数。
就像是 :
customAdapter = new CustomAdapter(myContext, android.R.layout.simple_list_item_1, getList, HomeFragment.this);
并更新Adapter的构造函数:
public CustomAdapter(Context context, int id, HomeFragment fragment) { this.fragment = fragment;}然后您可以使用fragment变量调用方法。
fragment.doSomething();



