toggle
暮らすように旅する。貧乏なノマド夫婦の海外放浪記。
2017-03-04

【Androidアプリ開発】RecyclerViewに、クリックリスナーを実装する方法

同じようなデザインの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も取れて、
一覧ページでアイテムクリック→詳細ページへのような挙動もオッケーですね!いえい!

関連記事

コメントを残す

メールアドレスが公開されることはありません。