目標は、グリッドビュー内のアイテムをクリックすると、選択したアイテムの詳細を示す別のアクティビティが開きます。しかし、新しいアクティビティ(.putExtraを介して)に渡される値は、どの項目をタップしても、常にarraylistの最後の項目です。これはアダプタクラスbtwの内部にあります。ありがとう:)アダプタ内のonBindViewHolderの位置は、常に最後のアイテムを返します
をコードは、あなたが原因onBindViewHolder
方法でOnClickListener()
セットで、このような奇妙な動作を取得
@Override
public void onBindViewHolder(final listHolder newsHolder, final int position) {
currentNews = newsList.get(position);
listHolder.ivArt.setImageResource(currentNews.getArt());
newsHolder.ivArt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(viewGroup.getContext(), ViewNewsActivity.class);
intent.putExtra("list, (Parcelable) list);
viewGroup.getContext().startActivity(intent);
}
});
}
の内側にこれを追加するには、 'ViewHolder'は'実装OnClickListener'とfinalとしてonClick'方法 – pskink
なぜあなたが渡しているパラメータ '内の「位置」getterメソッドのいずれかを使用します?! – Fakher