RecyclerViewで作業していますが、RecyclerViewの各アイテムのOnClickとOnLongClickを設定しようとしています。私はお詫びしますが、私は考えません本当にはコードで何が起こっているのかを理解しています。私の割り当てのためのスライドと、私がこのサイトで見つけたものではうまくいかないもののパッチを取ったものもあります。私RecyclerViewアダプタクラスのトップで私は
静的OnItemClickListener mItemClickListenerを肝炎; `そして私はそうのように私の新しいメソッドのためのインタフェース、私clicklistenerを設定する方法、そして私のViewHolderの実装があります。RecyclerViewのメソッドsetOnItemClickListenerを解決できません
public interface OnItemClickListener {
void onItemClick(View view, int position);
void onItemLongClick(View view, int position);
}
public void setOnItemClickListener(final OnItemClickListener mItemClickListener) {
this.mItemClickListener = mItemClickListener;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public ImageView movieImage;
public TextView movieName;
public TextView movieDescription;
public CheckBox movieCheckBox;
public CardView cV;
public ViewHolder(View view) {
super(view);
movieImage = (ImageView) view.findViewById(R.id.movieImg);
movieName = (TextView) view.findViewById(R.id.movieName);
movieDescription = (TextView) view.findViewById(R.id.movieDescription);
movieCheckBox = (CheckBox) view.findViewById(R.id.movieCheckBox);
view.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
if (mItemClickListener != null) {
if (getAdapterPosition() != RecyclerView.NO_POSITION) {
mItemClickListener.onItemClick(v, getAdapterPosition());
}
}
}
});
view.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (mItemClickListener != null) {
if (getAdapterPosition() != RecyclerView.NO_POSITION) {
mItemClickListener.onItemLongClick(v, getAdapterPosition());
}
}
return true;
}
});
}
}
私を問題は、私がonitemclicklistenerを設定しようとしているリサイクラビューを所有している私のフラグメントのクラスに入っています。
myAdapter = new MyRecyclerAdapter();
myAdapter.setOnItemClickListener(new MyRecyclerAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
Log.d("TEST", "onItemClick");
}
@Override
public void onItemLongClick(View view, int position) {
Log.d("TEST", "onItemLongClick");
}
});
これは、問題はそれが'Cannot resolve method 'setOnItemClickListener(anonymous com.example.kevin.assignment4.MyRecyclerAdapter.OnItemClickListener)'
を言います。しかし、それはそれを言っている理由を私は知らないmyAdapter.setOnItemClickListener
であると言います。私が知る限り、方法を見つけることができるはずです。私は同じこと、その作業クールを試してみました
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.HashMap;
アダプタークリックとロングクリックを使用する理由は?recyclerviewのクリックとロングクリックも使用できます。これを使用して試してみてください。 – dipali
フラグメント化するためのOnItemClickListenerインターフェイスを実装しました – Sanjeet
@dipali RecyclerViewリスト内の個々のアイテムがクリックされたことを伝える必要があります。課題の一部は、私が通常のクリックをしたか長いクリックをしたかに基づいて、リスト内のアイテムとは異なることをしています。 – KevinCamacho