LoginSignup
20
21

More than 5 years have passed since last update.

AOSPにあがっているサンプルのRecyclerViewのアイテムクリックリスナ実装方法

Last updated at Posted at 2015-10-28

こちらの方のRecyclerViewのアイテムクリックに関する記事があり、素直な感じで分かりやすく、良いなと思いました。
RecyclerViewのアイテムクリック
http://qiita.com/ushi3_jp/items/ba0df2df6b0b77278f14

今日紹介するのはAOSP(Android Open Source Project)に上がっているクリックリスナの付け方についてです。

一応AOSPにあがっているので少し安心できるのかなと思っています。
ActivityでRecyclerViewを利用するところでこんな感じで書きます。

recyclerView.setAdapter(new MyAdapter(this, Cheeses.sCheeseStrings) {
    @Override
    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        final MyAdapter.ViewHolder vh = super.onCreateViewHolder(parent, viewType);
        vh.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final int pos = vh.getAdapterPosition();
                // ここにクリックした時の処理を書く
            }
        });
        return vh;
    }
});

具体的にはRecyclerView.Adapterを継承して作ったアダプタークラスを更に無名クラスで継承して、onCreateViewHolderをオーバーライドして、そのメソッド内でsuper.onCreateViewHolder()を呼んで、帰ってきたViewHolderのitemViewにリスナーを付ける形です。
メリットとしては実装量が少ない、Adapterにリスナーの実装を書かなくて良いなどでしょうか。
この方式も利用することも検討してみると良いかもしれません。

最初に書いた記事を真似して、ActivityにOnClickListenerを実装させる形式であれば、OnClickListenerは一つで済みそうですね

20
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
21