同じようなデザインのViewを繰り返し表示できてとても便利なRecyclerView。
カードスタイルのアイテムを繰り返し表示するデザインなんかに最適ですね。
繰り返し表示されるアイテム(View)のうち、
1つのアイテムをクリックしたときのクリックリスナーの実装方法をご紹介。
やり方1(ViewHolderの中に実装)
public ViewHolder(View v, int viewType) {
super(v);
// クリックリスナを搭載
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 行いたい処理
}
});
}
ViewHolderの中で、itemViewにクリックリスナーを設定すればOKです。
やり方2(onCreateViewHolderの中に実装)
なんだよ!
ViewHolderの中に実装したら、position取れなくて、
何番目のアイテムをクリックしたかわかんねーじゃん!!
という方へ。
@Override
public TestRecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = null;
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item_card_big, parent, false);
final ViewHolder holder = new ViewHolder(view, viewType);
// クリックリスナを搭載
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final int position = holder.getAdapterPosition(); // positionを取得
// 何かの処理をします
}
});
return holder;
}
これでpositonも取れて、
一覧ページでアイテムクリック→詳細ページへのような挙動もオッケーですね!いえい!
コメントを残す