です。次のコードを使用して、cardviewのonClickListenerを設定します。Cardviewの位置は常に-1
@Override
public MyViewHolder onCreateViewHolder(final ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.album_card, parent, false);
final CardView card = (CardView)itemView.findViewById(R.id.card_view);
final MyViewHolder holder = new MyViewHolder(itemView);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
StateListAnimator stateListAnimator = AnimatorInflater
.loadStateListAnimator(mContext, R.anim.lift_on_touch);
card.setStateListAnimator(stateListAnimator);
}
card.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final int position = holder.getAdapterPosition();
Log.d("Position",""+position);
if (position == 2) {
Intent intent = new Intent(mContext, ExperienceActivity.class);
mContext.startActivity(intent);
}
}
});
return new MyViewHolder(itemView);
}
OnClickListenerは完全に動作していますが、位置が常に-1を返すのはなぜですか?
holder.getAdapterPosition()しかし、どこでホルダーの位置を設定していますか? –
私はそれについてはわかりません。どこに設定する必要がありますか。 – Learner
final CardView card =(CardView)itemView.findViewById(R.id.card_view); final MyViewHolderホルダー=新しいMyViewHolder(itemView); holder.setPosition(YOUR_POSITION); –