RecyclerView で行選択

RecyclerViewで行を選択する方法についてお手伝いいたします。

まず、RecyclerViewのアイテムをクリック可能にするために、アイテムのレイアウトファイルにandroid:clickable="true"を追加します。

次に、RecyclerViewのアダプタークラスに以下のコードを追加します。

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private List<String> mData;
    private OnItemClickListener mListener;

    // 省略...

    public interface OnItemClickListener {
        void onItemClick(int position);
    }

    public void setOnItemClickListener(OnItemClickListener listener) {
        mListener = listener;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
        // 省略...

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mListener != null) {
                    mListener.onItemClick(position);
                }
            }
        });
    }

    // 省略...
}

上記のコードでは、アイテムがクリックされた時にOnItemClickListenerインターフェースを通じてクリックイベントを通知します。

そして、アクティビティまたはフラグメントで以下のように使用します。

public class MainActivity extends AppCompatActivity {
    private RecyclerView mRecyclerView;
    private MyAdapter mAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mRecyclerView = findViewById(R.id.recyclerView);
        mAdapter = new MyAdapter(dataList);
        mRecyclerView.setAdapter(mAdapter);

        mAdapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(int position) {
                // アイテムがクリックされた時の処理を記述します
            }
        });
    }
}

上記のコードでは、setOnItemClickListenerメソッドを使用してクリックイベントのリスナーをセットしています。そして、onItemClickメソッド内にアイテムがクリックされた時の処理を記述します。

これにより、RecyclerViewの行を選択することができます。選択された行の位置情報を利用して、必要な処理を行ってください。

タイトルとURLをコピーしました