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の行を選択することができます。選択された行の位置情報を利用して、必要な処理を行ってください。