diff --git a/app/src/main/java/com/example/nemophila/MyPageActivity.java b/app/src/main/java/com/example/nemophila/MyPageActivity.java index d8409c8..ae30c66 100644 --- a/app/src/main/java/com/example/nemophila/MyPageActivity.java +++ b/app/src/main/java/com/example/nemophila/MyPageActivity.java @@ -8,7 +8,9 @@ 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.TextView; @@ -86,8 +88,8 @@ /* ここからあんまわかっていない */ RecyclerView rv = (RecyclerView) findViewById(R.id.postsList); LinearLayoutManager llm = new LinearLayoutManager(this); - List postsDataset = new ArrayList<>(); - MyPageActivityAdapter adapter = new MyPageActivityAdapter(postsDataset); + List MyPageActDataset = new ArrayList<>(); + MyPageActAdapter adapter = new MyPageActAdapter(MyPageActDataset); rv.setHasFixedSize(true); rv.setLayoutManager(llm); @@ -97,11 +99,10 @@ accountViewModel.getAccountPostsLiveData().observe(this, new Observer >() { @Override public void onChanged(Collection Posts) { - //postsDatasetを一旦クリアし、LiveDataから受け取ったデータを一つずつセット(重複しないように) - postsDataset.clear(); + //MyPageActDatasetを一旦クリアし、LiveDataから受け取ったデータを一つずつセット + MyPageActDataset.clear(); for (Post post: Posts){ - PostDataModel data = new PostDataModel(); - data.setName(post.getName()); + MyPageActDataModel data = new MyPageActDataModel(); data.setDate(post.getDate()); //rateはintで受け取った評価に対応した星の数のStringに変換してセット int intRate = post.getRate(); @@ -116,25 +117,101 @@ data.setRate(strRate); data.setGenre(post.getGenre()); data.setComment(post.getComment()); - - postsDataset.add(data); + MyPageActDataset.add(data); } + //RecyclerViewをonChangedが呼ばれるたび表示(アダプターを更新してRecyclerViewにセット) - adapter.setList(postsDataset); + adapter.setList(MyPageActDataset); rv.setAdapter(adapter); } }); } -// protected void onResume(Bundle savedInstanceState) { -// super.onResume(savedInstanceState); -// -// Nemophila nemophila = (Nemophila) getApplication(); -// String uid = nemophila.getUid(); -// String name = nemophila.getName(); -// TextView myName = (TextView) findViewById(R.id.name); -// myName.setText(name); -// TextView id = (TextView) findViewById(R.id.id); -// id.setText(uid); -// } + /* ここからMyPageActivityの内部クラス */ + + // Adapter + public class MyPageActAdapter extends RecyclerView.Adapter { + + private 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); + return vh; + } + + @Override + public void onBindViewHolder(MyPageActViewHolder holder, int position) { + holder.dateView.setText(list.get(position).getDate()); + holder.rateView.setText(list.get(position).getRate()); + holder.genreView.setText(list.get(position).getGenre()); + holder.commentView.setText(list.get(position).getComment()); + } + + @Override + public int getItemCount() { + return list.size(); + } + } + + // ViewHolder + public class MyPageActViewHolder extends RecyclerView.ViewHolder { + public TextView dateView; + public TextView rateView; + public TextView genreView; + public TextView commentView; + + 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); + } + } + + // DataModel + public class MyPageActDataModel { + private String date; + private String rate; + private String genre; + private String comment; + + public String getDate() { + return date; + } + public void setDate(String date) { + this.date = date; + } + + public String getRate() { + return rate; + } + public void setRate(String rate) { + this.rate = rate; + } + + public String getGenre() { + return genre; + } + public void setGenre(String genre) { + this.genre = genre; + } + + public String getComment() { + return comment; + } + public void setComment(String comment) { + this.comment = comment; + } + } }