다음 코드를 사용하여 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
최종 CardView 카드 = (CardView) itemView.findViewById (R.id.card_view); 최종 MyViewHolder 홀더 = 새 MyViewHolder (itemView); holder.setPosition (YOUR_POSITION); –