diff --git a/app/src/main/java/com/example/nemophila/MyPageActivity.java b/app/src/main/java/com/example/nemophila/MyPageActivity.java index 2bd208b..ed666bd 100644 --- a/app/src/main/java/com/example/nemophila/MyPageActivity.java +++ b/app/src/main/java/com/example/nemophila/MyPageActivity.java @@ -3,6 +3,8 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.content.Intent; import android.os.Bundle; @@ -10,25 +12,27 @@ import android.widget.Button; import android.widget.TextView; -import com.example.nemophila.FriendActivity; -import com.example.nemophila.MainActivity; -import com.example.nemophila.MyPageEditorActivity; -import com.example.nemophila.R; -import com.example.nemophila.RequestedActivity; -import com.example.nemophila.entities.Account; import com.example.nemophila.entities.Post; import com.example.nemophila.viewmodels.AccountViewModel; +import java.util.ArrayList; +import java.util.Collection; import java.util.List; public class MyPageActivity extends AppCompatActivity { -//MyPageActivity画面の作成 + //MyPageActivity画面の作成 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mypage); 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); // 「閉じる」ボタンを押したときにメイン画面へ遷移する Button cancelButton = (Button) findViewById(R.id.cancel); @@ -68,7 +72,7 @@ }); - //AccountViewModelとの通信とテキストの表示 + //getNameLiveDataとの通信により今のユーザーネームを表示する AccountViewModel accountViewModel = new ViewModelProvider(this).get(AccountViewModel.class); accountViewModel.getNameLiveData().observe(this, new Observer () { @Override @@ -78,23 +82,58 @@ nemophila.setName(name); } }); - 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); + /* ここからよくわかっていない */ + RecyclerView rv = (RecyclerView) findViewById(R.id.postsList); + LinearLayoutManager llm = new LinearLayoutManager(this); + List postsDataset = new ArrayList<>(); + MyPageActivityAdapter adapter = new MyPageActivityAdapter(postsDataset); + + rv.setHasFixedSize(true); + rv.setLayoutManager(llm); + rv.setAdapter(adapter); + + accountViewModel.getAccountPostsLiveData().observe(this, new Observer >() { + @Override + public void onChanged(Collection Posts) { + //postsDatasetを一旦クリアし、LiveDataから受け取ったデータを一つずつセット(重複しないように) + postsDataset.clear(); + for (Post post: Posts){ + PostDataModel data = new PostDataModel(); + data.setName(post.getName()); + data.setDate(post.getDate()); + //rateはintで受け取った評価に対応した星の数のStringに変換してセット + int intRate = post.getRate(); + String strRate = ""; + for (int i = 0; i < 5; i++){ + if(intRate > i ){ + strRate += "★"; + }else{ + strRate += "☆"; + } + } + data.setRate(strRate); + data.setGenre(post.getGenre()); + data.setComment(post.getComment()); + + postsDataset.add(data); + } + //RecyclerViewをonChangedが呼ばれるたび表示(アダプターを更新してRecyclerViewにセット) + adapter.setList(postsDataset); + rv.setAdapter(adapter); + } + }); } - protected void onResume(Bundle savedInstanceState) { + +// 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); - } -} \ No newline at end of file +// +// 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); +// } +}