diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0407368..64c5979 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"> - - + + - - + + - - + + - - + + diff --git a/app/src/main/java/com/example/nemophila/MyPageActivity.java b/app/src/main/java/com/example/nemophila/MyPageActivity.java index 47eeaaa..502a50b 100644 --- a/app/src/main/java/com/example/nemophila/MyPageActivity.java +++ b/app/src/main/java/com/example/nemophila/MyPageActivity.java @@ -6,13 +6,17 @@ 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; import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import android.widget.ImageButton; import android.widget.TextView; +import android.widget.Toast; import com.example.nemophila.entities.Post; import com.example.nemophila.viewmodels.AccountViewModel; @@ -28,9 +32,11 @@ super.onCreate(savedInstanceState); setContentView(R.layout.activity_mypage); - Nemophila nemophila = (Nemophila) getApplication(); + //初期化 + Nemophila nemophila = (Nemophila) this.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); @@ -94,10 +100,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); + MyPageActAdapter adapter = new MyPageActAdapter(myPageActDataset) { + @Override + void onDeleteButtonClick(View view, int position, MyPageActDataModel dataModel) { + new AlertDialog.Builder(MyPageActivity.this) + .setTitle("警告") + .setMessage("この投稿を削除しますか?") + .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 +162,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 +192,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 +203,15 @@ public TextView rateView; public TextView genreView; public TextView commentView; + public ImageButton 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 +221,8 @@ private String rate; private String genre; private String comment; + private String sid; + private String pid; public String getDate() { return date; @@ -221,5 +251,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; } } } diff --git a/app/src/main/res/drawable/blue_circle_button.xml b/app/src/main/res/drawable/blue_circle_button.xml index e007807..182023f 100644 --- a/app/src/main/res/drawable/blue_circle_button.xml +++ b/app/src/main/res/drawable/blue_circle_button.xml @@ -2,5 +2,5 @@ + android:color="@color/design_default_color_secondary"/> diff --git a/app/src/main/res/layout/activity_mypage.xml b/app/src/main/res/layout/activity_mypage.xml index 9dcff08..5ba4e04 100644 --- a/app/src/main/res/layout/activity_mypage.xml +++ b/app/src/main/res/layout/activity_mypage.xml @@ -106,7 +106,7 @@