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(); + } } }); }