2

Jacob Tabok の投稿を参照して、 OnItemTouchListenerを Fragment の onCreateView に追加しました。

@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通信用に 1 つのインターフェイスを使用し、アクティビティ-フラグメント通信用に別のインターフェイスを使用する必要があります。

recyclerviewを実装する方法の良い例(github)がありますが、フラグメントはありません

antoniolg - RecyclerViewExtensions


青色の背景コメント (todo) が付いたコードのスクリーンショットがあるので、コード フローに従うことができます。Click の代わりに LongClick を使用し、ViewModel クラスは Friend/User です。2 つの選言リストビューがあるため、誰かがユーザーをクリックすると、友達リストとその逆。

リサイクル業者アダプター


断片


アクティビティ


私もAndroidを学んでいるので、私の説明に何か問題がある場合は修正してください。

于 2014-11-28T13:52:12.867 に答える