RecyclerView で特定のアイテムを更新/リフレッシュする方法 質問する

RecyclerView で特定のアイテムを更新/リフレッシュする方法 質問する

の特定のアイテムを更新しようとしていますRecyclerView

話:ユーザーがアイテムをクリックするたびに、それが表示されます。ユーザーはOKボタンをクリックしてテキストを入力できます。このテキストをこのアイテムに表示し、 XMLとアダプタで宣言されAlertDialogた非表示にしたいです。ImageViewViewHolder

AlertDialogアイテムを更新するために、Positive Buttonで次の関数を使用しました。

private void updateListItem(int position) {
  View view = layoutManager.findViewByPosition(position);
  ImageView medicineSelected = (ImageView) view.findViewById(R.id.medicine_selected);
  medicineSelected.setVisibility(View.VISIBLE);
  TextView orderQuantity = (TextView) view.findViewById(R.id.order_quantity);
  orderQuantity.setVisibility(View.VISIBLE);
  orderQuantity.setText(quantity + " packet added!");

  medicinesArrayAdapter.notifyItemChanged(position);
}

しかし、このコードは渡された位置の itemView を変更するだけでなく、他の itemView もいくつか変更します。

特定の itemView をクリックして正しく変更するにはどうすればよいでしょうか?

ベストアンサー1

あなたはnotifyItemChanged(int position)RecyclerView.Adapter クラスのメソッド。ドキュメントより:

登録されているオブザーバーに、位置にあるアイテムが変更されたことを通知します。notifyItemChanged(position, null); を呼び出すのと同じです。

これは項目変更イベントであり、構造変更イベントではありません。位置のデータの反映が古く、更新する必要があることを示しています。位置の項目は同じ ID を保持します。

あなたはすでにその役職に就いているので、それはあなたにとってうまくいくはずです。

おすすめ記事