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..49b828b 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 @@ -102,9 +102,22 @@ // LiveData に変更があったとき(新しい友達リクエストのリストが届いたとき)に呼ばれるメソッド @Override public void onChanged(List friendRequests) { + // 既存データをクリアしてから新しいリストで再構築 + FriendRequestContent.clearItems(); for (FriendRequest f: friendRequests) { FriendRequestContent.addItem(new FriendRequestContent.FriendRequestItem(f.getSenderId(), "ユーザー名")); } + + // RecyclerView が FriendRequestContent.ITEMS を参照しているので、 + // データ変更を通知して再描画させる + View rootView = getView(); + if (rootView instanceof RecyclerView) { + RecyclerView recyclerView = (RecyclerView) rootView; + RecyclerView.Adapter adapter = recyclerView.getAdapter(); + if (adapter != null) { + adapter.notifyDataSetChanged(); + } + } } }); } diff --git a/app/src/main/java/com/example/tampopo_client/views/placeholder/FriendRequestContent.java b/app/src/main/java/com/example/tampopo_client/views/placeholder/FriendRequestContent.java index a52b3af..a548ffc 100644 --- a/app/src/main/java/com/example/tampopo_client/views/placeholder/FriendRequestContent.java +++ b/app/src/main/java/com/example/tampopo_client/views/placeholder/FriendRequestContent.java @@ -29,6 +29,12 @@ ITEM_MAP.put(item.id, item); } + // 一覧を再読み込みする際に古いデータを消すためのメソッド + public static void clearItems() { + ITEMS.clear(); + ITEM_MAP.clear(); + } + //位置(1,2,...)に応じたFriendRequestItem を生成するメソッド // public static FriendRequestItem createPlaceholderItem(int position) { // return new FriendRequestItem(String.valueOf(position), "ユーザー名 ", makeDetails(position));