android – 如何从适配器调用ListFragment中定义的方法?

前端之家收集整理的这篇文章主要介绍了android – 如何从适配器调用ListFragment中定义的方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个ListFragment和一个自定义适配器.

从适配器我从行中定义的按钮获取onClick事件.在onClick方法中我得到一些id,我想传递给ListFragment做一些事情.

如何从适配器调用ListFragment中的方法showTask?

listfragment

@H_502_8@public class TaskListFragment extends ListFragment{ /* ... */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mAdapter = new TaskListAdapter(getActivity(),data); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); setListAdapter(mAdapter); } public void showTask(long id) { FragmentTransaction ft = getFragmentManager().beginTransaction(); TaskFragment taskFragment = new TaskFragment(); Bundle args = new Bundle(); args.putLong("id",id); taskFragment.setArguments(args); ft.replace(R.id.fragment_container,taskFragment); ft.commit(); } }

适配器

@H_502_8@public class TaskListAdapter extends ArrayAdapter<Task>{ /* ... */ private OnClickListener mOnClickListener = new OnClickListener() { @Override public void onClick(View v) { long id = (Integer) v.getTag(); // how can I call showTask(id) ? } }; }

解决方法

一个常见的解决方案是适配器是片段的内部类,因此它可以直接调用方法.

或者,通过其构造函数将片段(或片段实现的某些接口)传递给适配器.

猜你在找的Android相关文章