Browse Source

[회원가입][New] RecyclerView 텍스트 뷰 표시

hyodong.min 7 năm trước cách đây
mục cha
commit
6d7389dbb3

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/signup/BaseViewHolder.java

@@ -23,5 +23,5 @@ public abstract class BaseViewHolder extends RecyclerView.ViewHolder {
     this.itemView = itemView;
   }
 
-  abstract void draw();
+  abstract void draw(int index);
 }

+ 4 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/signup/SignUpAdapter.java

@@ -2,6 +2,7 @@ package kr.co.zumo.app.lifeplus.view.fragment.signup;
 
 import android.support.annotation.NonNull;
 import android.support.v7.widget.RecyclerView;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -32,6 +33,7 @@ public class SignUpAdapter extends RecyclerView.Adapter<BaseViewHolder> {
   @Override
   public BaseViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
     BaseViewHolder holder = null;
+    Log.i("APP# SignUpAdapter | onCreateViewHolder", "| viewType: " + viewType);
     switch (viewType) {
       case SignUpListItem.SIGN_UP_HELLO:
         View textView = LayoutInflater.from(parent.getContext()).inflate(R.layout.sign_up_text_view, parent, false);
@@ -51,7 +53,7 @@ public class SignUpAdapter extends RecyclerView.Adapter<BaseViewHolder> {
 
   @Override
   public void onBindViewHolder(@NonNull BaseViewHolder holder, int position) {
-    holder.draw();
+    holder.draw(position);
   }
 
   @Override
@@ -61,7 +63,7 @@ public class SignUpAdapter extends RecyclerView.Adapter<BaseViewHolder> {
 
   @Override
   public int getItemViewType(int position) {
-    SignUpListItem item = signUpViewModel.getLastItem();
+    SignUpListItem item = signUpViewModel.getItem(position);
     int itemType = item.getItemType();
     return itemType;
   }

+ 5 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/signup/SignUpFragment.java

@@ -54,12 +54,14 @@ public class SignUpFragment extends FragmentBase {
   protected ViewModel defineViewModel() {
     ScreenChangerHelper helper = ScreenChangerHelper.getInstance();
     SignUpViewModel signUpViewModel = new SignUpViewModel(new FragmentChanger(helper.getFragmentActivity(), helper.getContainerId(), new BasicFragmentFactory()));
-    SignUpAdapter adapter = new SignUpAdapter(signUpViewModel);
+    adapter = new SignUpAdapter(signUpViewModel);
+
     RecyclerView recyclerView = getActivity().findViewById(R.id.sign_up_list);
     recyclerView.setHasFixedSize(true);
-    RecyclerView.LayoutManager layoutManager  = new LinearLayoutManager(App.getInstance().getContext());
+    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(App.getInstance().getContext());
     recyclerView.setLayoutManager(layoutManager);
     recyclerView.setAdapter(adapter);
+
     viewModel = signUpViewModel;
     return viewModel;
   }
@@ -68,9 +70,9 @@ public class SignUpFragment extends FragmentBase {
   public void onStart() {
     super.onStart();
 
-
     // fixme for test
     ((SignUpViewModel) viewModel).addItem(new SignUpListItem(SignUpListItem.SIGN_UP_HELLO, new SignUpTextBean(App.getInstance().getString(R.string.sign_up_hello_text)).toJson()));
+    ((SignUpViewModel) viewModel).addItem(new SignUpListItem(SignUpListItem.SIGN_UP_HELLO, new SignUpTextBean("2 번째 텍스트").toJson()));
     adapter.notifyDataSetChanged();
   }
 }

+ 5 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/signup/TextViewHolder.java

@@ -4,6 +4,7 @@
 package kr.co.zumo.app.lifeplus.view.fragment.signup;
 
 
+import android.util.Log;
 import android.view.View;
 import android.widget.TextView;
 
@@ -31,13 +32,15 @@ public class TextViewHolder extends BaseViewHolder {
   }
 
   @Override
-  void draw() {
+  void draw(int index) {
     SignUpViewModel model = (SignUpViewModel) SuperModel.getInstance().getViewModel();
 
-    SignUpListItem item = model.getLastItem();
+    SignUpListItem item = model.getItem(index);
     SignUpTextBean bean = item.getBean(SignUpTextBean.class);
     String text = bean.getText();
 
+    Log.i("APP# TextViewHolder | draw", "| text: " + text);
+
     ((TextView) itemView.findViewById(R.id.sign_up_text_view)).setText(text);
   }
 }

+ 11 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/model/SignUpViewModel.java

@@ -6,6 +6,7 @@ package kr.co.zumo.app.lifeplus.view.model;
 import android.databinding.ObservableArrayList;
 import android.databinding.ObservableList;
 import android.support.annotation.Nullable;
+import android.util.Log;
 
 import kr.co.zumo.app.lifeplus.supervisor.ScreenChanger;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
@@ -75,6 +76,16 @@ public class SignUpViewModel extends ViewModel {
    */
   public void addItem(SignUpListItem item) {
     signUpList.add(item);
+    Log.i("APP# SignUpViewModel | addItem", "| signUpList.size(): " + signUpList.size());
+  }
+
+  /**
+   * 인덱스에 해당하는 SignUpListItem 객체 반환
+   *
+   * @param index index
+   */
+  public SignUpListItem getItem(int index) {
+    return signUpList.get(index);
   }
 
   /**

+ 2 - 4
app/src/main/res/layout/fragment_sign_up.xml

@@ -1,6 +1,4 @@
-<layout xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        xmlns:tools="http://schemas.android.com/tools">
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
 
   <LinearLayout
     android:layout_width="match_parent"
@@ -10,7 +8,7 @@
     <android.support.v7.widget.RecyclerView
       android:id="@+id/sign_up_list"
       android:layout_width="match_parent"
-      android:layout_height="wrap_content"
+      android:layout_height="match_parent"
       />
 
   </LinearLayout>

+ 2 - 2
app/src/main/res/layout/sign_up_text_view.xml

@@ -2,8 +2,8 @@
 <LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
-  android:layout_width="match_parent"
-  android:layout_height="match_parent">
+  android:layout_width="wrap_content"
+  android:layout_height="wrap_content">
 
   <TextView
     android:id="@+id/sign_up_text_view"