2016-06-24 10 views
0

recyclerviewアイテムのクリックリスナーを設定するための現在の方法は何ですか?RecyclerviewアイテムのClickListener

+0

この質問は、そう、ここに何度も頼まれましたどのようにあなたはそれをやっていると何が間違っている? –

答えて

0

RecyclerViewには、ListViewとは異なり、アイテムにクリックハンドラを付加する特別な方法はありません。これは役立つかもしれない、これらのリンクをお試しくださいviewHolderコンストラクタ内のonClick()メソッド

class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 

    public ViewHolder(View itemView) { 
     super(itemView); 
     itemView.findViewById(R.id.foo).setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View view) { 

    } 
} 
+0

ありがとう、私はすでにこのパターンを使用しています。行全体ではなく、テキストビューのような1つの項目に対してクリックリスナーが必要な場合は、何をする必要がありますか? –

+0

私はあなたのケースの答えを更新しました –

0

を扱うことが

public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 
    public TextView tvName; 

    public ViewHolder(View itemView) { 
     super(itemView); 
     this.tvName = (TextView) itemView.findViewById(R.id.tvName); 
     this.tvName.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View view) { 
     // some code 
    } 
} 
+0

私はその正確なパターンをcodexpediaとして使用しています。行をクリックすると、コードが実行されます。しかし、私はアイテムのクリックごとに違う行動をしたいと思います。行のイメージをクリックすると、アクティビティAに移動し、行の残りの部分をクリックすると、アクティビティBに移動します。この目的のためにコードを変更できますか? –

+0

クリックした位置に基づいてクリックイベントに反応することをお勧めします。最初のアプローチの 'ItemClickListener'は、' onClick'メソッドの2番目のパラメータとしてpositionを渡します。 –

関連する問題