0
RecyclerViewを使用して選択可能なアイテムを表示しています。ただし、選択したアイテムがFirestoreトランザクションで更新されると、その選択は消滅します。私はそれが更新される項目でnotifyItemChangedを呼び出すと仮定していますが、選択状態を保持する方法はわかりません。私は、項目を選択するには、このコードを使用しています:FirebaseRecyclerAdapterのRecyclerviewは、アイテムが更新されたときに選択されたアイテムの選択を解除します。
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int currentPosition = holder.getLayoutPosition();
if(selectedPosition != currentPosition){
// Temporarily save the last selected position
int lastSelectedPosition = selectedPosition;
// Save the new selected position
selectedPosition = currentPosition;
// update the previous selected row
notifyItemChanged(lastSelectedPosition);
// select the clicked row
holder.itemView.setSelected(true);
}
}
});
とレイアウトを強調するために、このコード:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Color when the row is selected -->
<item android:drawable="@android:color/darker_gray" android:state_pressed="false" android:state_selected="true" />
<!-- Standard background color -->
<item android:drawable="@android:color/white" android:state_selected="false" />
</selector>