diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0407368..3ae6a8a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -87,10 +87,10 @@
android:name=".RequestedActivity"
android:exported="true"
android:label="@string/title_activity_requested">
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
diff --git a/app/src/main/java/com/example/nemophila/MyPageActivity.java b/app/src/main/java/com/example/nemophila/MyPageActivity.java
index 47eeaaa..d71b37f 100644
--- a/app/src/main/java/com/example/nemophila/MyPageActivity.java
+++ b/app/src/main/java/com/example/nemophila/MyPageActivity.java
@@ -6,6 +6,8 @@
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -13,6 +15,7 @@
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
+import android.widget.Toast;
import com.example.nemophila.entities.Post;
import com.example.nemophila.viewmodels.AccountViewModel;
@@ -31,10 +34,12 @@
Nemophila nemophila = (Nemophila) getApplication();
String uid = nemophila.getUid();
String name = nemophila.getName();
+ String token = nemophila.getToken();
TextView myName = (TextView) findViewById(R.id.name);
myName.setText(name);
TextView id = (TextView) findViewById(R.id.id);
id.setText(uid);
+ AccountViewModel accountViewModel = new ViewModelProvider(this).get(AccountViewModel.class);
// 「閉じる」ボタンを押したときにメイン画面へ遷移する
Button closeButton = (Button) findViewById(R.id.close);
@@ -83,7 +88,6 @@
});
//getNameLiveDataとの通信により今のユーザーネームを表示する
- AccountViewModel accountViewModel = new ViewModelProvider(this).get(AccountViewModel.class);
accountViewModel.getNameLiveData().observe(this, new Observer () {
@Override
public void onChanged(String name) {
@@ -94,10 +98,28 @@
});
/* ここからあんまわかっていない */
- RecyclerView rv = (RecyclerView) findViewById(R.id.postsList);
+ RecyclerView rv = findViewById(R.id.postsList);
LinearLayoutManager llm = new LinearLayoutManager(this);
List myPageActDataset = new ArrayList<>();
- MyPageActAdapter adapter = new MyPageActAdapter(myPageActDataset);
+ MyPageActivity.MyPageActAdapter adapter = new MyPageActivity.MyPageActAdapter(myPageActDataset) {
+ @Override
+ void onDeleteButtonClick(View view, int position, MyPageActivity.MyPageActDataModel dataModel) {
+ new AlertDialog.Builder(MyPageActivity.this)
+ .setTitle("警告")
+ .setMessage("この投稿を削除しますか?\n削除すると二度と元に戻せなくなります。")
+ .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ Toast.makeText(MyPageActivity.this, dataModel.getPid(), Toast.LENGTH_SHORT).show();
+ System.out.println("投稿を削除しました。");
+// accountViewModel.deleteAccountPost(dataModel.getSid(), uid, dataModel.getPid(), token);
+ }
+ })
+ .setNegativeButton("No", null)
+ .create()
+ .show();
+ }
+ };
rv.setHasFixedSize(true);
rv.setLayoutManager(llm);
@@ -138,22 +160,24 @@
/* ここからMyPageActivityの内部クラス */
// Adapter
- public class MyPageActAdapter extends RecyclerView.Adapter {
-
+ abstract public class MyPageActAdapter extends RecyclerView.Adapter {
private List list;
-
- public void setList(List list) {
- this.list = list;
- }
-
- public MyPageActAdapter(List list) {
- this.list = list;
- }
+ public void setList(List list) { this.list = list; }
+ public MyPageActAdapter(List list) { this.list = list; }
@Override
public MyPageActViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_my_page_activity_posts, parent,false);
MyPageActViewHolder vh = new MyPageActViewHolder(inflate);
+
+ vh.deleteButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ int position = vh.getBindingAdapterPosition();
+ onDeleteButtonClick(view, position, list.get(position));
+ }
+ });
+
return vh;
}
@@ -166,9 +190,9 @@
}
@Override
- public int getItemCount() {
- return list.size();
- }
+ public int getItemCount() { return list.size(); }
+
+ abstract void onDeleteButtonClick(View view, int position, MyPageActDataModel dataModel);
}
// ViewHolder
@@ -177,13 +201,15 @@
public TextView rateView;
public TextView genreView;
public TextView commentView;
+ public Button deleteButton;
- public MyPageActViewHolder(View itemView) {
- super(itemView);
- dateView = (TextView) itemView.findViewById(R.id.date);
- rateView = (TextView) itemView.findViewById(R.id.rate);
- genreView = (TextView) itemView.findViewById(R.id.genre);
- commentView = (TextView) itemView.findViewById(R.id.comment);
+ public MyPageActViewHolder(View view) {
+ super(view);
+ dateView = (TextView) view.findViewById(R.id.date);
+ rateView = (TextView) view.findViewById(R.id.rate);
+ genreView = (TextView) view.findViewById(R.id.genre);
+ commentView = (TextView) view.findViewById(R.id.comment);
+ deleteButton = view.findViewById(R.id.deleteButton);
}
}
@@ -193,6 +219,8 @@
private String rate;
private String genre;
private String comment;
+ private String sid;
+ private String pid;
public String getDate() {
return date;
@@ -221,5 +249,11 @@
public void setComment(String comment) {
this.comment = comment;
}
+
+ public String getSid() { return sid; }
+ public void setSid(String sid) { this.sid = sid; }
+
+ public String getPid() { return pid; }
+ public void setPid(String sid) { this.pid = pid; }
}
}