diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 498ac9e..78b143c 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -7,11 +7,11 @@
-
+
-
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 64c5979..e590043 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -63,12 +63,12 @@
android:exported="true"
android:label="@string/title_activity_sign_up">
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
requestingDataSet = new ArrayList<>();
- List RequestingDataList = new ArrayList<>();
+ List requestingDataList = new ArrayList<>();
//xmlからrvにRecyclerViewを取得、アダプターを宣言
RecyclerView rv = (RecyclerView) findViewById(R.id.requestingList);
- RequestingActivity.RequestingAdapter adapter = new RequestingActivity.RequestingAdapter(RequestingDataList);
+ RequestingAdapter adapter = new RequestingAdapter(requestingDataList);
//一行ずつを縦に(LinearLayout)表示するLayoutManagerを宣言
LinearLayoutManager llm = new LinearLayoutManager(this);
- //
+ //データごとの区切り線を入れる
RecyclerView.ItemDecoration itemDecoration =
new DividerItemDecoration(this, DividerItemDecoration.VERTICAL);
rv.addItemDecoration(itemDecoration);
@@ -76,18 +80,46 @@
rv.setHasFixedSize(true);
rv.setLayoutManager(llm);
+ //ViewModelを宣言し、申請先のデータをロードしておく
+ FriendViewModel friendViewModel = new ViewModelProvider(this).get(FriendViewModel.class);
+ friendViewModel.getRequesting(uid);
- //表示テスト用に仮データ
- List testDataSet = new ArrayList<>();
- for (int i = 0; i < 15; i++) {
- RequestingDataModel data = new RequestingDataModel();
- data.setName("ネモフィラ太郎"+ i + "号(テスト)");
+ //申請先の一覧のLiveDataへの購読
+ friendViewModel.getRequestingLiveData().observe(this, new Observer>() {
+ //データに変更があった時実行
+ @Override
+ public void onChanged(Collection requestingUsers) {
- testDataSet.add(data);
- }
- //onChange内に書くべき表示部分
- adapter.setList(testDataSet);
- rv.setAdapter(adapter);
+ //表示用のDataListを一旦クリアし、LiveDataから受け取ったデータを一つずつセット(重複しないように)
+ requestingDataList.clear();
+ //受け取ったLivedataの要素分繰り返し、セット
+ for (AccountNameJson user: requestingUsers) {
+ //dataを宣言 dataに投稿の必要なデータをセットし、それをpostsDatasetに追加してリストを作る
+ RequestingDataModel data = new RequestingDataModel();
+ data.setName(user.getName());
+
+ //投稿一つの情報がdataに全部セットされたらDatasetに追加
+ requestingDataList.add(data);
+ }
+
+ //onChange内に書くべき表示部分
+ adapter.setList(requestingDataList);
+ rv.setAdapter(adapter);
+ }
+ });
+
+
+// //表示テスト用に仮データ
+// List testDataSet = new ArrayList<>();
+// for (int i = 0; i < 15; i++) {
+// RequestingDataModel data = new RequestingDataModel();
+// data.setName("ネモフィラ太郎"+ i + "号(テスト)");
+//
+// testDataSet.add(data);
+// }
+// //onChange内に書くべき表示部分
+// adapter.setList(testDataSet);
+// rv.setAdapter(adapter);
}
@@ -97,29 +129,40 @@
//とりあえずnameのみで作成
//Adapter
- public class RequestingAdapter extends RecyclerView.Adapter {
+ public class RequestingAdapter extends RecyclerView.Adapter {
- private List list;
+ private List list;
- public RequestingAdapter(List list) {
+ public RequestingAdapter(List list) {
this.list =list;
}
- public void setList(List list) {
+ public void setList(List list) {
this.list = list;
}
@NonNull
@Override
- public RequestingActivity.RequestingViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
-
+ public RequestingViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ //1データあたりのレイアウトを読み込み、ビューホルダーを宣言
View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_requesting_activity, parent,false);
- RequestingActivity.RequestingViewHolder vh = new RequestingActivity.RequestingViewHolder(inflate);
+ RequestingViewHolder vh = new RequestingViewHolder(inflate);
+
+ // リスト内のボタンを押した時の処理
+ vh.deleteButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ int position = vh.getBindingAdapterPosition();
+ // 処理はonItemClickに
+ onItemClick(v, position, list.get(position));
+ }
+ });
+
return vh;
}
@Override
- public void onBindViewHolder(@NonNull RequestingActivity.RequestingViewHolder holder, int position) {
+ public void onBindViewHolder(@NonNull RequestingViewHolder holder, int position) {
holder.nameView.setText(list.get(position).getName());
}
@@ -127,15 +170,21 @@
public int getItemCount() {
return list.size();
}
+
+ void onItemClick(View view, int position, RequestingDataModel requesting) {
+ // このメソッドをActivity内でオーバーライドして、クリックイベントの処理を設定する
+ }
}
//ViewHolder
public class RequestingViewHolder extends RecyclerView.ViewHolder {
public TextView nameView;
+ public Button deleteButton;
public RequestingViewHolder(@NonNull View itemView) {
super(itemView);
nameView = (TextView) itemView.findViewById(R.id.requestingName);
+ deleteButton = itemView.findViewById(R.id.requestingDeleteButton);
}
}