2016-04-27 1 views
0

RecyclerViewでリスナーを実装するための追加クラスを作成しましたが、これは行全体のビューを参照しています。この行の1つのビュー(この場合はボタン)にもリスナーが必要です。RecyclerViewのaddOnItemTouchListenerからAndroidでいくつかのビューを取得する方法は?

私はCustomViewHolderからそのビューへのアクセスを得ることができますが、問題はアダプタから呼び出されたアクティビティにアダプタからの値を渡すことができないことです。

どうすればこのビューを取得できますか?addOnItemTouchListener?コードは次のとおりです。

recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), list, new ClickListener() { 
     @Override 
     public void onClick(View view, int position) { 
      // Is it possible to check which view is clicked here 
      // Something like this 
      if (view == findViewById(R.id.btn)) { 
       // do something 
       // but this is not working. 
      } 
     } 

     @Override 
     public void onLongClick(View view, int position) { 

     } 
    })); 

他にも私がこれを達成できる人は、私に教えてください。

答えて

0

あなたは、このような方法で

public interface OnRecyclerRowListener { 
    void onClick(int position, View v); 

    void onLongClick(int position, View v); 
} 

onBindViewHolder

あなたの活動は、それを実装してみましょうし、あなたのアダプタににインスタンスを渡すと、アダプタ内
holder.itemView.setOnClickListener(new View.OnClickListener() { 
    @Override public void onClick(View v) { 
     onRecyclerRowListener.onClick(holder.getAdapterPosition(),v); 
    } 
}); 
+0

をあなたのコールバックリスナーを作成することができますしかし、どのように外に取得しますリストの行の内部のいくつかのビューのためのアダプタリスナー?例えばボタン? –

関連する問題