gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:06:59 25 4
gpt4 key购买 nike

我有一个 ListFragment 和一个自定义适配器。

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

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

列表 fragment

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();
}
}

适配器

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) ?
}
};
}

最佳答案

一个常见的解决方案是将适配器作为 fragment 的内部类,这样它就可以直接调用该方法。

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

关于android - 如何从适配器调用 ListFragment 中定义的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15160958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com