diff --git a/app/src/main/java/com/example/nemophila/FriendActivity.java b/app/src/main/java/com/example/nemophila/FriendActivity.java index 6b084ea..dbca5a6 100644 --- a/app/src/main/java/com/example/nemophila/FriendActivity.java +++ b/app/src/main/java/com/example/nemophila/FriendActivity.java @@ -31,6 +31,7 @@ import java.util.List; public class FriendActivity extends AppCompatActivity { + private Nemophila nemophila; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -40,7 +41,7 @@ List friendsDataset = new ArrayList<>(); // 1行分の情報を持つDataModelを格納するリスト RecyclerView rv = findViewById(R.id.friendsList); // recyclerViewを取得 FriendViewModel friendViewModel = new ViewModelProvider(this).get(FriendViewModel.class); // ViewModelを取得 - Nemophila nemophila = (Nemophila) this.getApplication(); + nemophila = (Nemophila) this.getApplication(); //一行ずつを縦に(LinearLayout)表示するLayoutManagerを宣言 @@ -77,8 +78,11 @@ void onFavoriteClick(View view, int position, FriendDataModel friend, ImageView favorite) { if (favorite.getVisibility() == View.INVISIBLE) { favorite.setVisibility(View.VISIBLE); + nemophila.setFavoriteFriends(friend.getId()); } else { favorite.setVisibility(View.INVISIBLE); + nemophila.removeFavoriteFriends(friend.getId()); + System.out.println(nemophila.getFavoriteFriends()); } } }; @@ -114,14 +118,14 @@ // ----------- RecyclerView用の内部クラス ------------// // Adapter abstract public class FriendActivityAdapter extends RecyclerView.Adapter { - private List friendDatas; + private List friendData; - public FriendActivityAdapter(List friendDatas) { - this.friendDatas = friendDatas; + public FriendActivityAdapter(List friendData) { + this.friendData = friendData; } - public void setList(List friendDatas) { - this.friendDatas = friendDatas; + public void setList(List friendData) { + this.friendData = friendData; } @NonNull @@ -138,7 +142,7 @@ public void onClick(View v) { int position = vh.getBindingAdapterPosition(); // 処理はonDeleteClick()に丸投げ - onDeleteClick(v, position, friendDatas.get(position)); + onDeleteClick(v, position, friendData.get(position)); } }); @@ -148,7 +152,7 @@ public void onClick(View v) { int position = vh.getBindingAdapterPosition(); // 処理はonFavoriteClick()に丸投げ - onFavoriteClick(v, position, friendDatas.get(position), vh.favorite); + onFavoriteClick(v, position, friendData.get(position), vh.favorite); } }); @@ -158,12 +162,15 @@ @Override public void onBindViewHolder(@NonNull FriendsViewHolder holder, int position) { // 後からアイコンの登録をできるようにする - holder.nameView.setText(friendDatas.get(position).getName()); + holder.nameView.setText(friendData.get(position).getName()); + if (nemophila.getFavoriteFriends().contains(friendData.get(position).getId())) { + holder.favorite.setVisibility(View.VISIBLE); + } } @Override public int getItemCount() { - return friendDatas.size(); + return friendData.size(); } abstract void onDeleteClick(View view, int position, FriendDataModel friend);