diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 0897082..639c779 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,6 +4,7 @@
-
diff --git a/app/src/main/java/com/example/tampopo_client/views/FriendReceivedFragment.java b/app/src/main/java/com/example/tampopo_client/views/FriendReceivedFragment.java
index b5a8976..85e0e0e 100644
--- a/app/src/main/java/com/example/tampopo_client/views/FriendReceivedFragment.java
+++ b/app/src/main/java/com/example/tampopo_client/views/FriendReceivedFragment.java
@@ -35,6 +35,8 @@
private int mColumnCount = 1;
private Tampopo tampopo;
+ // RecyclerView のアダプタをフィールドとして保持し、データ変更時に更新通知できるようにする
+ private MyFriendRequestRecyclerViewAdapter adapter;
/**
* Mandatory empty constructor for the fragment manager to instantiate the
@@ -87,7 +89,10 @@
} else {
recyclerView.setLayoutManager(new GridLayoutManager(context, mColumnCount));
}
- recyclerView.setAdapter(new MyFriendRequestRecyclerViewAdapter(FriendRequestContent.ITEMS, friendViewModel, receiverId, token));
+
+ // アダプタをフィールドに保持しておき、後でデータ更新時に notifyDataSetChanged() を呼び出す
+ adapter = new MyFriendRequestRecyclerViewAdapter(FriendRequestContent.ITEMS, friendViewModel, receiverId, token);
+ recyclerView.setAdapter(adapter);
}
return view;
}
@@ -102,9 +107,18 @@
// LiveData に変更があったとき(新しい友達リクエストのリストが届いたとき)に呼ばれるメソッド
@Override
public void onChanged(List friendRequests) {
+ // まず既存の一覧をクリアし、最新の内容でリストを作り直す
+ FriendRequestContent.ITEMS.clear();
+ FriendRequestContent.ITEM_MAP.clear();
+
for (FriendRequest f: friendRequests) {
FriendRequestContent.addItem(new FriendRequestContent.FriendRequestItem(f.getSenderId(), "ユーザー名"));
}
+
+ // データが更新されたことをRecyclerViewのアダプタに通知して画面を更新
+ if (adapter != null) {
+ adapter.notifyDataSetChanged();
+ }
}
});
}