2

在这里参考 Jacob Tabok 的帖子,我在 Fragment 的 onCreateView 中添加了一个 OnItemTouchListener:

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_recyclerview, container, false);
    mRecyclerView = (RecyclerView) view.findViewById(R.id.list_recylclerview);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(_context));
    mRecyclerView.setItemAnimator(new DefaultItemAnimator());
    mRecyclerView.addOnItemTouchListener(
            new RecyclerItemClickListener(_context, new RecyclerItemClickListener.OnItemClickListener() {
                @Override public void onItemClick(View view, int position) {
                    logger.i("onitemClick");
                }

            })
    );

我完全不知道如何使用建议的做法来确定我的卡片视图中的哪个按钮被点击了。问题是返回整个卡片视图,而不是我单击的项目,如此处所示

如何确定单击了哪个按钮?我想避免这篇文章中的观众建议,因为我正在做很多片段交易

4

1 回答 1

0

你必须实现Activity - Fragment - RecyclerView.Adapter通信。(通过接口模式进行片段通信)

您应该使用一个接口进行fragment-recyclerview.Adapter通信,使用另一个接口进行活动片段通信。

有一个很好的例子(github)如何实现recyclerview但没有碎片

antoniolg - RecyclerViewExtensions


我的代码截图带有蓝色背景注释(待办事项),因此您可以遵循代码流,我使用 LongClick 而不是 Click,我的 ViewModel 类是朋友/用户,我有两个分离的列表视图,所以当有人点击用户时它会迁移到朋友列表,反之亦然。

回收适配器


分段


活动


如果我的解释有问题,请纠正我,因为我也在学习 Android。

于 2014-11-28T13:52:12.867 回答