app/build.gradle
@@ -57,6 +57,7 @@ implementation 'androidx.annotation:annotation:1.3.0' implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.1' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1' implementation 'com.google.android.material:material:1.8.0' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyContactsRvAdapter.java
New file @@ -0,0 +1,130 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.content.Intent; import android.view.View; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.CompoundButton; import android.widget.FrameLayout; import androidx.recyclerview.widget.GridLayoutManager; import com.android.app_base.base.BaseConfig; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.FamilyContactsBean; import com.application.zhangshi_app_android.databinding.ItemContactsBinding; import com.application.zhangshi_app_android.ui.function.ContactsActivity; import com.application.zhangshi_app_android.ui.function.ContactsActivityViewModel; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; /** * @author Gss * @date 2023.04.18. 19:52 * @desc 通讯录 recyclerView 的 adapter */ public class FamilyContactsRvAdapter extends BaseRVAdapter<FamilyContactsBean, ItemContactsBinding, FamilyContactsRvAdapter.ViewHolder> { private ContactsActivityViewModel viewModel; public FamilyContactsRvAdapter(Context context) { super(context); } public FamilyContactsRvAdapter(Context context, ContactsActivityViewModel viewModel) { super(context); this.viewModel = viewModel; } @Override protected int getLayoutId() { return R.layout.item_contacts; } @Override protected ViewHolder getViewHolder(ItemContactsBinding itemBind) { return new ViewHolder(itemBind); } @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.isExpended){ int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = false; }else{ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = holder.getBinding().cardView.getMeasuredHeight(); int distanceToExpand = targetHeight - initialHeight; Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = true; } } }); } public void setData(Object familyContactsBeans) { } public static class ViewHolder extends BaseViewHolder<ItemContactsBinding>{ private boolean isExpended; public ViewHolder(ItemContactsBinding binding) { super(binding); } } } app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceAbroadConditionRvAdapter.java
@@ -1,28 +1,33 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.databinding.DataBindingUtil; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.databinding.ItemGrowthExperienceAbroadConditionBinding; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivityViewModel; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Gss * @date 2023.04.08. 17:08 * @desc 成长经历(出国(境)情况) recyclerView 的 adapter * @date 2023.04.07. 21:31 * @desc 成长经历(持有出入境证件情况) recyclerView 的 adapter */ public class GrowthExperienceAbroadConditionRvAdapter extends BaseRVAdapter<GrowthExperienceBean, ItemGrowthExperienceAbroadConditionBinding, GrowthExperienceAbroadConditionRvAdapter.ViewHolder> { public class GrowthExperienceAbroadConditionRvAdapter extends BaseRVAdapter<GrowthExperienceAbroadConditionBean, ItemGrowthExperienceAbroadConditionBinding, GrowthExperienceAbroadConditionRvAdapter.ViewHolder> { private GrowthExperienceActivityViewModel viewModel; @@ -33,6 +38,10 @@ public GrowthExperienceAbroadConditionRvAdapter(Context context, GrowthExperienceActivityViewModel viewModel) { super(context); this.viewModel = viewModel; } public GrowthExperienceAbroadConditionRvAdapter(GrowthExperienceActivity growthExperienceActivity) { super(growthExperienceActivity); } @Override @@ -49,7 +58,7 @@ protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_green)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } @@ -103,11 +112,7 @@ } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), GrowthExperienceActivity.class) .putExtra("bean",mDataList.get(position))); }); } public static class ViewHolder extends BaseViewHolder<ItemGrowthExperienceAbroadConditionBinding>{ @@ -118,6 +123,7 @@ } } } app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceHolderConditionRvAdapter.java
@@ -2,28 +2,32 @@ import android.content.Context; import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.databinding.DataBindingUtil; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean; import com.application.zhangshi_app_android.databinding.ItemGrowthExperienceHolderConditionBinding; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivityViewModel; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Gss * @date 2023.04.08. 17:08 * @date 2023.04.07. 21:31 * @desc 成长经历(持有出入境证件情况) recyclerView 的 adapter */ public class GrowthExperienceHolderConditionRvAdapter extends BaseRVAdapter<GrowthExperienceBean, ItemGrowthExperienceHolderConditionBinding, GrowthExperienceHolderConditionRvAdapter.ViewHolder> { public class GrowthExperienceHolderConditionRvAdapter extends BaseRVAdapter<GrowthExperienceHolderConditionBean, ItemGrowthExperienceHolderConditionBinding, GrowthExperienceHolderConditionRvAdapter.ViewHolder> { private GrowthExperienceActivityViewModel viewModel; @@ -34,6 +38,10 @@ public GrowthExperienceHolderConditionRvAdapter(Context context, GrowthExperienceActivityViewModel viewModel) { super(context); this.viewModel = viewModel; } public GrowthExperienceHolderConditionRvAdapter(GrowthExperienceActivity growthExperienceActivity) { super(growthExperienceActivity); } @Override @@ -104,11 +112,7 @@ } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), GrowthExperienceActivity.class) .putExtra("bean",mDataList.get(position))); }); } public static class ViewHolder extends BaseViewHolder<ItemGrowthExperienceHolderConditionBinding>{ @@ -119,6 +123,7 @@ } } } app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperiencePrimaryRvAdapter.java
@@ -31,11 +31,9 @@ public class GrowthExperiencePrimaryRvAdapter extends BaseRVAdapter<GrowthExperienceBean, ItemGrowthExperiencePrimaryBinding, GrowthExperiencePrimaryRvAdapter.ViewHolder> { private GrowthExperienceActivityViewModel viewModel; private List<GrowthExperienceBean> mDataList; public GrowthExperiencePrimaryRvAdapter(Context context,List<GrowthExperienceBean> dataList) { public GrowthExperiencePrimaryRvAdapter(Context context) { super(context); mDataList = dataList; } public GrowthExperiencePrimaryRvAdapter(Context context, GrowthExperienceActivityViewModel viewModel) { @@ -47,10 +45,6 @@ super(growthExperienceActivity); } public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { ItemGrowthExperiencePrimaryBinding itemBind = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()),getLayoutId(),parent,false); return new ViewHolder(itemBind); } @Override protected int getLayoutId() { return R.layout.item_growth_experience_primary; @@ -63,7 +57,9 @@ @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { @@ -119,23 +115,18 @@ } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), GrowthExperienceActivity.class) .putExtra("bean",mDataList.get(position))); }); } public static class ViewHolder extends BaseViewHolder<ItemGrowthExperiencePrimaryBinding>{ private boolean isExpended; private ItemGrowthExperiencePrimaryBinding binding; public ViewHolder(ItemGrowthExperiencePrimaryBinding binding) { super(binding); binding=ItemGrowthExperiencePrimaryBinding.inflate(LayoutInflater.from(itemBind.getContext()),(ViewGroup) itemBind,false); } } } app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceRelationshipRvAdapter.java
@@ -2,28 +2,32 @@ import android.content.Context; import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.databinding.DataBindingUtil; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean; import com.application.zhangshi_app_android.databinding.ItemGrowthExperienceRelationshipBinding; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivityViewModel; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Gss * @date 2023.04.08. 17:08 * @date 2023.04.07. 21:31 * @desc 成长经历(家庭成员及主要社会关系情况) recyclerView 的 adapter */ public class GrowthExperienceRelationshipRvAdapter extends BaseRVAdapter<GrowthExperienceBean, ItemGrowthExperienceRelationshipBinding, GrowthExperienceRelationshipRvAdapter.ViewHolder> { public class GrowthExperienceRelationshipRvAdapter extends BaseRVAdapter<GrowthExperienceRelationshipBean, ItemGrowthExperienceRelationshipBinding, GrowthExperienceRelationshipRvAdapter.ViewHolder> { private GrowthExperienceActivityViewModel viewModel; @@ -34,6 +38,10 @@ public GrowthExperienceRelationshipRvAdapter(Context context, GrowthExperienceActivityViewModel viewModel) { super(context); this.viewModel = viewModel; } public GrowthExperienceRelationshipRvAdapter(GrowthExperienceActivity growthExperienceActivity) { super(growthExperienceActivity); } @Override @@ -50,7 +58,7 @@ protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_green)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } @@ -104,11 +112,7 @@ } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), GrowthExperienceActivity.class) .putExtra("bean",mDataList.get(position))); }); } public static class ViewHolder extends BaseViewHolder<ItemGrowthExperienceRelationshipBinding>{ @@ -119,6 +123,7 @@ } } } app/src/main/java/com/application/zhangshi_app_android/bean/FamilyContactsBean.java
New file @@ -0,0 +1,19 @@ package com.application.zhangshi_app_android.bean; import java.io.Serializable; import java.util.List; public class FamilyContactsBean implements Serializable { private long id; public long getId() { return id; } public void setId(long id) { this.id = id; } public List<FamilyContactsBean> getData() { return null; } } app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceAbroadConditionBean.java
New file @@ -0,0 +1,19 @@ package com.application.zhangshi_app_android.bean; public class GrowthExperienceAbroadConditionBean { private String userId; private String destination; private String cause; private String startDate; public String getUserId() { return userId; } public void setUserId(String value) { this.userId = value; } public String getDestination() { return destination; } public void setDestination(String value) { this.destination = value; } public String getCause() { return cause; } public void setCause(String value) { this.cause = value; } public String getStartDate() { return startDate; } public void setStartDate(String value) { this.startDate = value; } } app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceAutobiographyBean.java
New file @@ -0,0 +1,23 @@ package com.application.zhangshi_app_android.bean; import java.io.Serializable; import java.util.List; public class GrowthExperienceAutobiographyBean implements Serializable{ //这个时间明显和设计稿上的对应不上 // 你就得找后台问一问 你看不懂中文吗??? private String content; private int type; public String getContent() { return content; } public void setContent(String content) { this.content = content; } public int getType() { return type; } public void setType(int type) { this.type = type; } } app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceBean.java
@@ -8,89 +8,53 @@ * @date 2023.03.31. 17:47 * @desc 成长经历 bean 类 */ public class GrowthExperienceBean implements Serializable { private String idName; public class GrowthExperienceBean implements Serializable{ private String id; private String userId; private String content; private String startDate; private String witness; private String usedName; private String gender; private String associate; private String nationality; private String ethnicGroup; private String marriageCondition; private String politicalStatus; private String contactNumber; private String idNumber; private String residenceNumber; private String reason; private String address; private String identity; private String duringTime; private String duringYear; private String relationship; private String School; private String passCheck; private String abroadZone; private List<String> url; public GrowthExperienceBean(String mDuringYear,String school,String name){ idName=name; School=school; duringYear=mDuringYear; public String getId() { return id; } public String getAddress() { return address; } public void setAddress(String value) { this.address = value; } public String getIdName() { return idName; } public void setIdName(String value) { this.idName = value; } public String getUsedName() { return usedName; } public void setUsedName(String value) { this.usedName = value; } public String getAssociate() { return associate; } public void setAssociate(String value) { this.associate = value; } public void setId(String id) { this.id = id; } public String getWitness() { return witness; } public void setWitness(String value) { this.witness = value; } public String getIdentity() { return identity; } public void setIdentity(String value) { this.identity = value; } public String getGender() { return gender; } public void setGender(String value) { this.gender = value; } public String getReason() { return reason; } public void setReason(String value) { this.reason = value; } public String getNationality() { return nationality; } public void setNationality(String value) { this.nationality = value; } public String getUserId() { return userId; } public String getEthnicGroup() { return ethnicGroup; } public void setEthnicGroup(String value) { this.ethnicGroup = value; } public void setUserId(String userId) { this.userId = userId; } public String getMarriageCondition() { return marriageCondition; } public void setMarriageCondition(String value) { this.marriageCondition = value; } public String getContent() { return content; } public String getPoliticalStatus() { return politicalStatus; } public void setPoliticalStatus(String value) { this.politicalStatus = value; } public void setContent(String content) { this.content = content; } public String getContactNumber() { return contactNumber; } public void setContactNumber(String value) { this.contactNumber = value; } public String getStartDate() { return startDate; } public String getIdNumber() { return idNumber; } public void setIdNumber(String value) { this.idNumber = value; } public String getResidenceNumber() { return idNumber; } public void setResidenceNumber(String value) { this.idNumber = value; } public String getDuringTime() { return duringTime; } public void setDuringTime(String value) { this.duringTime = value; } public String getDuringYear() { return duringYear; } public void setDuringYear(String value) { this.duringYear = value; } public void setStartDate(String startDate) { this.startDate = startDate; } public String getSchool() { return School; } public void setSchool(String value) { this.School = value; } public String getWitness() { return witness; } public String getRelationship() { return relationship; } public void setRelationship(String value) { this.relationship = value; } public String getPassCheck() { return passCheck; } public void setPassCheck(String value) { this.passCheck = value; } public String getAbroadZone() { return abroadZone; } public void setAbroadZone(String value) { this.abroadZone = value; } public List<String> getUrl() { return url; } public void setUrl(List<String> value) { this.url = value; } public void setWitness(String witness) { this.witness = witness; } } app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceHolderConditionBean.java
New file @@ -0,0 +1,22 @@ package com.application.zhangshi_app_android.bean; public class GrowthExperienceHolderConditionBean { private String userId; private String cerName; private String idNo; private String validityDate; private String ownStatus; public String getUserId() { return userId; } public void setUserId(String value) { this.userId = value; } public String getCerName() { return cerName; } public void setCerName(String value) { this.cerName = value; } public String getIdNo() { return idNo; } public void setIdNo(String value) { this.idNo = value; } public String getValidityDate() { return validityDate; } public void setValidityDate(String value) { this.validityDate = value; } public String getOwnStatus() { return ownStatus; } public void setOwnStatus(String value) { this.ownStatus = value; } } app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceInformationBean.java
New file @@ -0,0 +1,70 @@ package com.application.zhangshi_app_android.bean; import java.io.Serializable; import java.util.List; /** * @author Gss * @date 2023.03.31. 17:47 * @desc 成长经历个人基本信息 bean 类 */ public class GrowthExperienceInformationBean implements Serializable { private int userId; private String nickName; private String oldName; private int sex; private String nationality; private String nation; private int maritalStatus; private String politicalOutlook; private String phoneNumber; private String idNum; private String locationAddress; private String alwaysAddress; private String alwaysPolice; private String unit; private String position; private int outStatus; private String idNo; private String img; private String birth; private String url; public int getUserId() { return userId; } public void setUserId(int value) { this.userId = value; } public String getNickName() { return nickName; } public void setNickName(String value) { this.nickName = value; } public String getOldName() { return oldName; } public void setOldName(String value) { this.oldName = value; } public int getSex() { return sex; } public void setSex(int value) { this.sex = value; } public String getNationality() { return nationality; } public void setNationality(String value) { this.nationality = value; } public String getNation() { return nation; } public void setNation(String value) { this.nation = value; } public int getMaritalStatus() { return maritalStatus; } public void setMaritalStatus(int value) { this.maritalStatus = value; } public String getPoliticalOutlook() { return politicalOutlook; } public void setPoliticalOutlook(String value) { this.politicalOutlook = value; } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String value) { this.phoneNumber = value; } public String getIdNum() { return idNum; } public void setIdNum(String value) { this.idNum = value; } public String getLocationAddress() { return locationAddress; } public void setLocationAddress(String value) { this.locationAddress = value; } public String getAlwaysAddress() { return alwaysAddress; } public void setAlwaysAddress(String value) { this.alwaysAddress = value; } public String getUnit() { return unit; } public void setUnit(String value) { this.unit = value; } public String getPosition() { return position; } public void setPosition(String value) { this.position = value; } public int getOutStatus() { return outStatus; } public void setOutStatus(int value) { this.outStatus = value; } public String getIdNo() { return idNo; } public void setIdNo(String value) { this.idNo = value; } public String getImg() { return img; } public void setImg(String value) { this.img = value; } public String getBirth() { return birth; } public void setBirth(String value) { this.birth = value; } public String getUrl() { return url; } public void setUrl(String value) { this.url = value; } } app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceRelationshipBean.java
New file @@ -0,0 +1,23 @@ package com.application.zhangshi_app_android.bean; public class GrowthExperienceRelationshipBean { private String nickName; private String relation; private String unit; private String position; private String politicalOutlook; public String getNickName() { return nickName; } public void setNickName(String value) { this.nickName = value; } public String getRelation() { return relation; } public void setRelation(String value) { this.relation = value; } public String getUnit() { return unit; } public void setUnit(String value) { this.unit = value; } public String getPosition() { return position; } public void setPosition(String value) { this.position = value; } public String getPoliticalOutlook() { return politicalOutlook; } public void setPoliticalOutlook(String value) { this.politicalOutlook = value; } } app/src/main/java/com/application/zhangshi_app_android/data/DataRepository.java
@@ -6,12 +6,19 @@ import com.android.app_base.http.ResultData; import com.application.zhangshi_app_android.bean.CaptchaImageBean; import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean; import com.application.zhangshi_app_android.bean.FamilyContactsBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean; import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean; import com.application.zhangshi_app_android.bean.GrowthExperienceResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean; import com.application.zhangshi_app_android.bean.LoginRequestBean; import com.application.zhangshi_app_android.bean.LoginResponseBean; import com.application.zhangshi_app_android.bean.UploadFileResponseBean; @@ -141,9 +148,54 @@ /** * 获取成长经历 */ public Observable<ResultData<GrowthExperienceResponseBean>> getGrowthExperience(Map<String, Object> paramsMap) { return mHttpDataSource.getGrowthExperience(paramsMap); } public Observable<ResultData<List<GrowthExperienceBean>>> getGrowthExperience() { return mHttpDataSource.getGrowthExperience(); } /** * 获取成长经历个人信息 */ public Observable<ResultData<GrowthExperienceInformationBean>> getGrowthExperienceInformation() { return mHttpDataSource.getGrowthExperienceInformation(); } /** * 获取成长经历关系情况 */ public Observable<ResultData<List<GrowthExperienceRelationshipBean>>> getGrowthExperienceRelationship() { return mHttpDataSource.getGrowthExperienceRelationship(); } /** * 获取成长经历持有出入境证件情况 */ public Observable<ResultData<List<GrowthExperienceHolderConditionBean>>> getGrowthExperienceHolderCondition() { return mHttpDataSource.getGrowthExperienceHolderCondition(); } /** * 获取成长经历出国境情况 */ public Observable<ResultData<List<GrowthExperienceAbroadConditionBean>>> getGrowthExperienceAbroadCondition() { return mHttpDataSource.getGrowthExperienceAbroadCondition(); } /** * 获取自传 */ @Override public Observable<ResultData<List<GrowthExperienceAutobiographyBean>>> getGrowthExperienceAutobiography() { return mHttpDataSource.getGrowthExperienceAutobiography(); } /** * 获取通讯录 */ public Observable<ResultData<FamilyContactsBean>> getFamilyContacts(Map<String, Object> paramsMap) { return mHttpDataSource.getFamilyContacts(paramsMap); } /** * @see LocalDataSourceImpl app/src/main/java/com/application/zhangshi_app_android/data/source/HttpDataSource.java
@@ -3,9 +3,16 @@ import com.android.app_base.http.ResultData; import com.application.zhangshi_app_android.bean.CaptchaImageBean; import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean; import com.application.zhangshi_app_android.bean.FamilyContactsBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean; import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean; import com.application.zhangshi_app_android.bean.GrowthExperienceResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.LoginRequestBean; @@ -76,7 +83,33 @@ /** * 获取成长经历 */ Observable<ResultData<GrowthExperienceResponseBean>> getGrowthExperience(Map<String, Object> paramsMap); Observable<ResultData<List<GrowthExperienceBean>>> getGrowthExperience(); /** * 获取成长经历个人信息 */ Observable<ResultData<GrowthExperienceInformationBean>> getGrowthExperienceInformation(); /** * 获取成长经历关系情况 */ Observable<ResultData<List<GrowthExperienceRelationshipBean>>> getGrowthExperienceRelationship(); /** * 获取成长经历持有出入境证件情况 */ Observable<ResultData<List<GrowthExperienceHolderConditionBean>>> getGrowthExperienceHolderCondition(); /** * 获取成长经历出国境情况 */ Observable<ResultData<List<GrowthExperienceAbroadConditionBean>>> getGrowthExperienceAbroadCondition(); /** * 获取自传 */ Observable<ResultData<List<GrowthExperienceAutobiographyBean>>> getGrowthExperienceAutobiography(); /** * 获取通讯录 */ Observable<ResultData<FamilyContactsBean>> getFamilyContacts(Map<String, Object> paramsMap); } app/src/main/java/com/application/zhangshi_app_android/data/source/http/ApiService.java
@@ -6,6 +6,12 @@ import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean; import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean; import com.application.zhangshi_app_android.bean.GrowthExperienceResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.LoginRequestBean; @@ -94,8 +100,38 @@ Observable<ResultData<HomeDevicesResponseBean>> getHomeDevices(@QueryMap Map<String, Object> paramsMap); /** * 获取成长经历个人信息 */ @GET("/self/user") Observable<ResultData<GrowthExperienceInformationBean>> getGrowthExperienceInformation(); /** * 获取成长经历(主要学习及工作经历) */ @GET("/growthExperience") Observable<ResultData<GrowthExperienceResponseBean>> getGrowthExperience(@QueryMap Map<String, Object> paramsMap); @GET("/zExperience/all") Observable<ResultData<List<GrowthExperienceBean>>> getGrowthExperience(); /** * 获取成长经历(家庭成员及主要社会关系情况) */ @GET("/self/user/relation") Observable<ResultData<List<GrowthExperienceRelationshipBean>>> getGrowthExperienceRelationship(); /** * 获取成长经历(持有出入境证件情况) */ @GET("/zCertificate/all") Observable<ResultData<List<GrowthExperienceHolderConditionBean>>> getGrowthExperienceHolderCondition(); /** * 获取成长经历(出国境情况) */ @GET("/zAbroad/all") Observable<ResultData<List<GrowthExperienceAbroadConditionBean>>> getGrowthExperienceAbroadCondition(); /** * 获取自传 */ @GET("/zAutobiography/all") Observable<ResultData<List<GrowthExperienceAutobiographyBean>>> getGrowthExperienceAutobiography(); } app/src/main/java/com/application/zhangshi_app_android/data/source/http/HttpDataSourceImpl.java
@@ -5,9 +5,13 @@ import com.application.zhangshi_app_android.bean.CaptchaImageBean; import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.GrowthExperienceResponseBean; import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean; import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.LoginRequestBean; import com.application.zhangshi_app_android.bean.LoginResponseBean; @@ -15,6 +19,7 @@ import com.application.zhangshi_app_android.bean.UploadFileResponseBean; import com.application.zhangshi_app_android.data.source.HttpDataSource; import java.util.List; import java.util.Map; import io.reactivex.Observable; @@ -131,7 +136,45 @@ * 获取成长经历 */ @Override public Observable<ResultData<GrowthExperienceResponseBean>> getGrowthExperience(Map<String, Object> paramsMap) { return apiService.getGrowthExperience(paramsMap); public Observable<ResultData<List<GrowthExperienceBean>>> getGrowthExperience() { return apiService.getGrowthExperience(); } /** * 获取成长经历个人信息 */ @Override public Observable<ResultData<GrowthExperienceInformationBean>> getGrowthExperienceInformation() { return apiService.getGrowthExperienceInformation(); } /** * 获取成长经历关系情况 */ @Override public Observable<ResultData<List<GrowthExperienceRelationshipBean>>> getGrowthExperienceRelationship() { return apiService.getGrowthExperienceRelationship(); } /** * 获取成长经历持有出入境证件情况 */ @Override public Observable<ResultData<List<GrowthExperienceHolderConditionBean>>> getGrowthExperienceHolderCondition() { return apiService.getGrowthExperienceHolderCondition(); } /** * 获取成长经历出国境情况 */ @Override public Observable<ResultData<List<GrowthExperienceAbroadConditionBean>>> getGrowthExperienceAbroadCondition() { return apiService.getGrowthExperienceAbroadCondition(); } /** * 获取自传 */ @Override public Observable<ResultData<List<GrowthExperienceAutobiographyBean>>> getGrowthExperienceAutobiography() { return apiService.getGrowthExperienceAutobiography(); } } app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseActivity.java
@@ -91,11 +91,16 @@ classMap.put(null,(LinearLayout) findViewById(R.id.dl_privacy)); setSelectItem(classMap.get(getClass())); for (Map.Entry<Class, LinearLayout> set : classMap.entrySet()) { set.getValue().setOnClickListener(v -> { if (set.getKey() != null){ AppManager.getAppManager().startActivity(set.getKey()); } }); LinearLayout linearLayout = set.getValue(); if (linearLayout != null) { linearLayout.setOnClickListener(v -> { if (set.getKey() != null){ AppManager.getAppManager().startActivity(set.getKey()); } }); } else { } } mDrawerLayout.setScrimColor(getResources().getColor(R.color.color_shadow)); } app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivity.java
New file @@ -0,0 +1,96 @@ package com.application.zhangshi_app_android.ui.function; import android.graphics.drawable.ColorDrawable; import android.view.View; import android.view.ViewGroup; import android.widget.PopupWindow; import androidx.databinding.library.baseAdapters.BR; import androidx.lifecycle.Observer; import com.android.app_base.base.viewmodel.BaseViewModel; import com.android.app_base.utils.ScreenSizeUtils; import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.FamilyAssetsRvAdapter; import com.application.zhangshi_app_android.adapter.FamilyContactsRvAdapter; import com.application.zhangshi_app_android.bean.FamilyContactsBean; import com.application.zhangshi_app_android.databinding.ActivityContactsBinding; ; import com.application.zhangshi_app_android.ui.DLBaseActivity; import java.util.List; /** * @author Gss * @date 2023.04.18. 20:33 * @desc */ public class ContactsActivity<FamilyContactsActivityViewModel extends BaseViewModel> extends DLBaseActivity<ActivityContactsBinding,FamilyContactsActivityViewModel> { private FamilyContactsRvAdapter adapter; private PopupWindow mOperatePopupWindow; @Override public int getLayoutId() { return R.layout.activity_contacts; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { } @Override public void initView() { adapter = new FamilyContactsRvAdapter(this); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12)); itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); binding.recyclerView.addItemDecoration(itemDecoration); binding.recyclerView.setAdapter(adapter); mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null)); mOperatePopupWindow.getContentView().findViewById(R.id.layout_add).setVisibility(View.GONE); mOperatePopupWindow.getContentView().findViewById(R.id.layout_select).setVisibility(View.GONE); binding.ivOperate.setOnClickListener(v -> { mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0); }); } @Override public void initData() { viewModel.getFamilyContacts(); } @Override public void initLiveDataObserve() { viewModel.getDataListLiveData().observe(this, familyContactsBeans -> { adapter.setData(familyContactsBeans); }); } private PopupWindow initPopUpWindow(View view){ PopupWindow popupWindow = new PopupWindow(this); // 设置布局文件 popupWindow.setContentView(view); // 为了避免部分机型不显示,需要重新设置一下宽高 popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT); popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); // 设置pop透明效果 popupWindow.setBackgroundDrawable(new ColorDrawable(0x0000)); // 设置pop出入动画 popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_add); // 设置pop获取焦点,如果为false点击返回按钮会退出当前Activity,如果pop中有Editor的话,focusable必须要为true popupWindow.setFocusable(true); // 设置pop可点击,为false点击事件无效,默认为true popupWindow.setTouchable(true); // 设置点击pop外侧消失,默认为false;在focusable为true时点击外侧始终消失 popupWindow.setOutsideTouchable(false); return popupWindow; } } app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivityViewModel.java
New file @@ -0,0 +1,97 @@ package com.application.zhangshi_app_android.ui.function; import static com.android.app_base.base.BaseConfig.CODE_SUCCESS; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.BaseConfig; import com.android.app_base.base.StateViewEnum; import com.android.app_base.base.viewmodel.BaseViewModel; import com.android.app_base.http.ResultData; import com.android.app_base.utils.RxUtils; import com.application.zhangshi_app_android.bean.FamilyContactsBean; import com.application.zhangshi_app_android.data.DataRepository; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.List; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; /** * @author Gss * @date 2023.04.18. 19:54 * @desc 通讯录 ViewModel */ public class ContactsActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<List<FamilyContactsBean>> dataListLiveData;//所有数据 public ContactsActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public void getFamilyContacts(){ model.getFamilyContacts(new HashMap<>()) .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer<ResultData<FamilyContactsBean>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } @Override public void onNext(ResultData<FamilyContactsBean> data) { if (data.getCode() == CODE_SUCCESS){ if (data.getData().getData().isEmpty()){ changeStateView(StateViewEnum.DATA_NULL); }else { changeStateView(StateViewEnum.HIDE); dataListLiveData.postValue(data.getData().getData()); } }else { messageLiveData.postValue(data.getMsg()); } } @Override public void onError(Throwable e) { messageLiveData.postValue(e.getMessage()); } @Override public void onComplete() { } }); } public MutableLiveData<List<FamilyContactsBean>> getDataListLiveData() { if (dataListLiveData == null){ dataListLiveData = new MutableLiveData<>(); } return dataListLiveData; } public void setDataListLiveData(MutableLiveData<List<FamilyContactsBean>> dataListLiveData) { this.dataListLiveData = dataListLiveData; } } app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java
@@ -5,19 +5,25 @@ import android.view.ViewGroup; import android.widget.PopupWindow; import androidx.databinding.DataBindingUtil; import com.android.app_base.utils.ScreenSizeUtils; import androidx.lifecycle.Observer; import androidx.viewpager.widget.ViewPager; import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.FamilyAssetsRvAdapter; import com.application.zhangshi_app_android.adapter.GrowthExperienceAbroadConditionRvAdapter; import com.application.zhangshi_app_android.adapter.GrowthExperienceHolderConditionRvAdapter; import com.application.zhangshi_app_android.adapter.GrowthExperiencePrimaryRvAdapter; import com.application.zhangshi_app_android.adapter.GrowthExperienceRelationshipRvAdapter; import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean; import com.application.zhangshi_app_android.databinding.ActivityGrowthExperienceBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; import java.util.ArrayList; import com.google.android.material.tabs.TabLayout; import java.util.List; /** @@ -26,8 +32,10 @@ * @desc 成长经历 GrowthExperienceActivity */ public class GrowthExperienceActivity extends DLBaseActivity<ActivityGrowthExperienceBinding,GrowthExperienceActivityViewModel> { private GrowthExperiencePrimaryRvAdapter adapter; private GrowthExperiencePrimaryRvAdapter primaryRvAdapter; private GrowthExperienceRelationshipRvAdapter relationshipRvAdapter; private GrowthExperienceHolderConditionRvAdapter holderConditionRvAdapter; private GrowthExperienceAbroadConditionRvAdapter abroadConditionRvAdapter; @Override public int getLayoutId() { @@ -41,49 +49,113 @@ @Override public void initParam() { GrowthExperienceBean bean = new GrowthExperienceBean("name", "date", "content"); List<GrowthExperienceBean> dataList=new ArrayList<>(); dataList.add(new GrowthExperienceBean("2010-2016","**小学","张三")); dataList.add(new GrowthExperienceBean("2017-2020","**中学","李四")); adapter=new GrowthExperiencePrimaryRvAdapter(this,dataList); } // 设置选中效果 @Override public void initView() { adapter = new GrowthExperiencePrimaryRvAdapter(this); primaryRvAdapter = new GrowthExperiencePrimaryRvAdapter(this); relationshipRvAdapter = new GrowthExperienceRelationshipRvAdapter(this); holderConditionRvAdapter = new GrowthExperienceHolderConditionRvAdapter(this ); abroadConditionRvAdapter = new GrowthExperienceAbroadConditionRvAdapter(this); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12)); itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_16)); binding.rvPrimary.addItemDecoration(itemDecoration); binding.rvPrimary.setAdapter(adapter); binding.rvPrimary.setAdapter(primaryRvAdapter); binding.rvRelationship.addItemDecoration(itemDecoration); binding.rvRelationship.setAdapter(adapter); binding.rvRelationship.setAdapter(relationshipRvAdapter); binding.rvCertificates.addItemDecoration(itemDecoration); binding.rvCertificates.setAdapter(adapter); binding.rvCertificates.setAdapter(holderConditionRvAdapter); binding.rvAbroad.addItemDecoration(itemDecoration); binding.rvAbroad.setAdapter(adapter); binding.rvAbroad.setAdapter(abroadConditionRvAdapter); //这里的tab数量就是后台返回的数据量,tab的标题也是后台返回的,但是{"id":1,"userId":110,"type":1,"content":"婴儿时期我很快乐"}后台的返回数据没有这个时间段,你就得问一下,看不懂吗?? binding.tabLayout.addTab(binding.tabLayout.newTab().setText("0-3岁(婴儿期)")); binding.tabLayout.addTab(binding.tabLayout.newTab().setText("3-6岁(幼儿期)")); binding.tabLayout.addTab(binding.tabLayout.newTab().setText("6-9岁(青年期) ")); //就不知道脑子在想什么 binding.tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { // 当用户选中一个 Tab 时回调 // 这里可以根据 Tab 的位置来切换相应的页面 switch (tab.getPosition()) { case 0: // 切换到 0-3 岁页面 break; case 1: // 切换到 3-6 岁页面 break; case 2: // 切换到 6-9 岁页面 break; default: break; } } @Override public void onTabUnselected(TabLayout.Tab tab) { // 当用户取消选中一个 Tab 时回调 } @Override public void onTabReselected(TabLayout.Tab tab) { // 当用户再次选中一个已经选中的 Tab 时回调 } }); // 创建 ViewPager 并设置 Adapter ViewPager viewPager = binding.viewPager; // 将 TabLayout 与 ViewPager 关联起来 binding.tabLayout.setupWithViewPager(viewPager); } @Override public void initData() { viewModel.getGrowthExperience(); viewModel.getInfo(); viewModel.getGrowthExperience(); viewModel.getRelation(); viewModel.getHolder(); viewModel.getAbroad(); viewModel.getGrowthExperienceAutobiography(); } @Override public void initLiveDataObserve() { ActivityGrowthExperienceBinding binding1= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience); ActivityGrowthExperienceBinding binding2= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience); ActivityGrowthExperienceBinding binding3= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience); ActivityGrowthExperienceBinding binding4= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience); viewModel.getDataListLiveData().observe(this, GrowthExperienceBeans -> { adapter.setData(GrowthExperienceBeans); viewModel.getPrimaryLiveData().observe(this, new Observer<List<GrowthExperienceBean>>() { @Override public void onChanged(List<GrowthExperienceBean> growthExperienceBeans) { primaryRvAdapter.setData(growthExperienceBeans); } }); viewModel.getRelationLiveData().observe(this, new Observer<List<GrowthExperienceRelationshipBean>>() { @Override public void onChanged(List<GrowthExperienceRelationshipBean> growthExperienceRelationshipBeans) { relationshipRvAdapter.setData(growthExperienceRelationshipBeans); } }); viewModel.getHolderLiveData().observe(this, new Observer<List<GrowthExperienceHolderConditionBean>>() { @Override public void onChanged(List<GrowthExperienceHolderConditionBean> growthExperienceHolderConditionBeans) { holderConditionRvAdapter.setData(growthExperienceHolderConditionBeans); } }); viewModel.getAbroadLiveData().observe(this, new Observer<List<GrowthExperienceAbroadConditionBean>>() { @Override public void onChanged(List<GrowthExperienceAbroadConditionBean> growthExperienceAbroadConditionBeans) { abroadConditionRvAdapter.setData(growthExperienceAbroadConditionBeans); } }); } private PopupWindow initPopUpWindow(View view){ app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivityViewModel.java
@@ -3,30 +3,19 @@ import android.app.Application; import androidx.annotation.NonNull; import androidx.databinding.DataBindingUtil; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModelProvider; import com.android.app_base.base.StateViewEnum; import com.android.app_base.http.ResultData; import com.android.app_base.manager.AppManager; import com.android.app_base.utils.RxUtils; import com.android.app_base.utils.ToastUtils; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.FamilyAssetsBean; import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean; import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.bean.GrowthExperienceResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesBean; import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean; import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean; import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean; import com.application.zhangshi_app_android.data.DataRepository; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -38,8 +27,12 @@ * @desc 成长经历 viewModel */ public class GrowthExperienceActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<List<GrowthExperienceBean>> dataListLiveData;//数据 private MutableLiveData<List<GrowthExperienceBean>> primaryLiveData;//数据 private MutableLiveData<GrowthExperienceInformationBean> infoLiveData; private MutableLiveData<List<GrowthExperienceAutobiographyBean>> autobiographyLiveData; private MutableLiveData<List<GrowthExperienceRelationshipBean>> relationLiveData; private MutableLiveData<List<GrowthExperienceHolderConditionBean>> holderLiveData; private MutableLiveData<List<GrowthExperienceAbroadConditionBean>> abroadLiveData; public GrowthExperienceActivityViewModel(@NonNull Application application) { super(application); } @@ -47,24 +40,164 @@ protected DataRepository initModel() { return DataRepository.getInstance(); } public void getGrowthExperience(){ model.getGrowthExperience(new HashMap<>()) .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer<ResultData<GrowthExperienceResponseBean>>() { @Override /** * 获取成长经历 */ public void getGrowthExperience(){ model.getGrowthExperience() .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer<ResultData<List<GrowthExperienceBean>>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } @Override public void onNext(ResultData<List<GrowthExperienceBean>> data) { if (data.getCode() == CODE_SUCCESS){ primaryLiveData.postValue(data.getData()); }else { messageLiveData.postValue(data.getMsg()); } } @Override public void onError(Throwable e) { messageLiveData.postValue(e.getMessage()); } @Override public void onComplete() { } }); } /** * 获取个人信息 */ public void getInfo(){ model.getGrowthExperienceInformation() .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer<ResultData<GrowthExperienceInformationBean>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } @Override public void onNext(ResultData<GrowthExperienceResponseBean> data) { public void onNext(ResultData<GrowthExperienceInformationBean> data) { if (data.getCode() == CODE_SUCCESS){ if (data.getData().getData().isEmpty()){ changeStateView(StateViewEnum.DATA_NULL); }else { changeStateView(StateViewEnum.HIDE); dataListLiveData.postValue(data.getData().getData()); infoLiveData.postValue(data.getData()); }else { messageLiveData.postValue(data.getMsg()); } } @Override public void onError(Throwable e) { messageLiveData.postValue(e.getMessage()); } @Override public void onComplete() { } }); } /** * 获取自传 */ public void getGrowthExperienceAutobiography(){ model.getGrowthExperienceAutobiography() .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer<ResultData<List<GrowthExperienceAutobiographyBean>>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } @Override public void onNext(ResultData<List<GrowthExperienceAutobiographyBean>> data) { if (data.getCode() == CODE_SUCCESS) { if (autobiographyLiveData != null) { //这一看就是已经获取到数据了,没法显示就是你写的代码问题,自己找问题啊 //就给livedata设置数据,然后呢,它的数据改变后,谁来发生ui变化,观察者呢???谁是观察者 autobiographyLiveData.postValue(data.getData()); } } else { if (messageLiveData != null) { messageLiveData.postValue(data.getMsg()); } } } @Override public void onError(Throwable e) { messageLiveData.postValue(e.getMessage()); } @Override public void onComplete() { } }); } /** * 获取关系情况 */ public void getRelation(){ model.getGrowthExperienceRelationship() .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer<ResultData<List<GrowthExperienceRelationshipBean>>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } @Override public void onNext(ResultData<List<GrowthExperienceRelationshipBean>> data) { if (data.getCode() == CODE_SUCCESS){ relationLiveData.postValue(data.getData()); }else { messageLiveData.postValue(data.getMsg()); } } @Override public void onError(Throwable e) { messageLiveData.postValue(e.getMessage()); } @Override public void onComplete() { } }); } /** * 获取持有出入境证件情况 */ public void getHolder(){ model.getGrowthExperienceHolderCondition() .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer<ResultData<List<GrowthExperienceHolderConditionBean>>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } @Override public void onNext(ResultData<List<GrowthExperienceHolderConditionBean>> data) { if (data.getCode() == CODE_SUCCESS){ holderLiveData.postValue(data.getData()); }else { messageLiveData.postValue(data.getMsg()); } @@ -84,45 +217,106 @@ } public MutableLiveData<List<GrowthExperienceBean>> getDataListLiveData() { if (dataListLiveData == null){ dataListLiveData = new MutableLiveData<>(); } return dataListLiveData; } public void setDataListLiveData(MutableLiveData<List<GrowthExperienceBean>> dataListLiveData) { this.dataListLiveData = dataListLiveData; } public void sortDataList(int type){ List<GrowthExperienceBean> list = dataListLiveData.getValue(); if (list == null || list.isEmpty()){ return; } list.sort(new Comparator<GrowthExperienceBean>() { @Override public int compare(GrowthExperienceBean o1, GrowthExperienceBean o2) { SimpleDateFormat format = new SimpleDateFormat("yyyy-yyyy", java.util.Locale.getDefault()); Date date1 = null; Date date2 = null; try { date1 = format.parse(o1.getDuringYear()); date2 = format.parse(o2.getDuringYear()); } catch (ParseException e) { throw new RuntimeException(e); } if (date1 != null && date2 != null) { if (type == 0){ return date2.compareTo(date1); }else { return date1.compareTo(date2); /** * 获取出国境情况 */ public void getAbroad(){ model.getGrowthExperienceAbroadCondition() .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer<ResultData<List<GrowthExperienceAbroadConditionBean>>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } } return 0; } }); dataListLiveData.postValue(list); @Override public void onNext(ResultData<List<GrowthExperienceAbroadConditionBean>> data) { if (data.getCode() == CODE_SUCCESS){ abroadLiveData.postValue(data.getData()); }else { messageLiveData.postValue(data.getMsg()); } } @Override public void onError(Throwable e) { messageLiveData.postValue(e.getMessage()); } @Override public void onComplete() { } }); } public MutableLiveData<List<GrowthExperienceBean>> getPrimaryLiveData() { if (primaryLiveData == null){ primaryLiveData = new MutableLiveData<>(); } return primaryLiveData; } public void setPrimaryLiveData(MutableLiveData<List<GrowthExperienceBean>> primaryLiveData) { this.primaryLiveData = primaryLiveData; } public MutableLiveData<List<GrowthExperienceRelationshipBean>> getRelationLiveData() { if (relationLiveData == null){ relationLiveData = new MutableLiveData<>(); } return relationLiveData; } public void setRelationLiveData(MutableLiveData<List<GrowthExperienceRelationshipBean>> relationLiveData) { this.relationLiveData = relationLiveData; } public MutableLiveData<GrowthExperienceInformationBean> getInfoLiveData() { if (infoLiveData == null){ infoLiveData = new MutableLiveData<>(); } return infoLiveData; } public void setInfoLiveData(MutableLiveData<GrowthExperienceInformationBean> infoLiveData) { this.infoLiveData = infoLiveData; } public void setHolderLiveData(MutableLiveData<List<GrowthExperienceHolderConditionBean>> holderLiveData) { this.holderLiveData = holderLiveData; } public MutableLiveData<List<GrowthExperienceHolderConditionBean>> getHolderLiveData() { if (holderLiveData == null){ holderLiveData = new MutableLiveData<>(); } return holderLiveData; } public void setAbroadLiveData(MutableLiveData<List<GrowthExperienceAbroadConditionBean>> abroadLiveData) { this.abroadLiveData = abroadLiveData; } public MutableLiveData<List<GrowthExperienceAbroadConditionBean>> getAbroadLiveData() { if (abroadLiveData == null){ abroadLiveData = new MutableLiveData<>(); } return abroadLiveData; } public MutableLiveData<List<GrowthExperienceAutobiographyBean>> getAutobiographyLiveData() { if (autobiographyLiveData == null){ autobiographyLiveData = new MutableLiveData<>(); } return autobiographyLiveData; } public void setAutobiographyLiveData(MutableLiveData<List<GrowthExperienceAutobiographyBean>> autobiographyLiveData) { this.autobiographyLiveData = autobiographyLiveData; } } app/src/main/res/drawable/mail_list_pic.png
app/src/main/res/drawable/shape_fffad1e0_stroke.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:topLeftRadius="4dp" android:topRightRadius="4dp" android:bottomLeftRadius="4dp" android:bottomRightRadius="4dp" /> <stroke android:width="1dp" android:color="#fffad1e0" /> </shape> app/src/main/res/layout/activity_contacts.xml
New file @@ -0,0 +1,119 @@ <?xml version="1.0" encoding="utf-8"?> <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"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.ContactsActivityViewModel" /> </data> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:id="@+id/titleBar" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" > <FrameLayout android:layout_width="24dp" android:layout_height="24dp" android:layout_marginHorizontal="16dp" android:layout_gravity="center_vertical|end" > <ImageView android:id="@+id/iv_operate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/ic_operate" /> </FrameLayout> <LinearLayout android:id="@+id/layout_default" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" > <TextView android:id="@+id/tv_title" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:text="通讯录(仅供查看)" android:layout_weight="1" android:textColor="@color/white" android:textSize="@dimen/sp_20" /> <ImageView android:id="@+id/iv_search_default" android:layout_width="@dimen/dp_24" android:layout_height="@dimen/dp_24" android:background="@drawable/ic_search" /> </LinearLayout> <LinearLayout android:id="@+id/layout_search" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginVertical="4dp" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" android:background="@color/white" android:paddingHorizontal="5dp" android:visibility="gone" > <ImageView android:id="@+id/iv_search" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_gray" /> <EditText android:id="@+id/et_search" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginStart="5dp" android:textSize="14sp" android:textColor="#61000000" android:background="@null" android:imeOptions="actionSearch" android:text="" android:singleLine="true" android:hint="在“通讯录内搜索”" /> <ImageView android:id="@+id/iv_search_type" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_by" /> </LinearLayout> </com.android.app_base.widget.ExtendTitleBar> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="0dp" android:background="@color/color_normal_background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar" app:layout_constraintVertical_bias="1.0" tools:itemCount="10" tools:layout_editor_absoluteX="-81dp" tools:listitem="@layout/item_contacts" /> </androidx.constraintlayout.widget.ConstraintLayout> </layout> app/src/main/res/layout/activity_growth_experience.xml
@@ -73,6 +73,7 @@ android:textColor="#DE000000" android:textColorHint="#6b000000" android:textSize="@dimen/sp_16" android:text="@{viewModel.infoLiveData.nickName}" tools:text="张三" /> <View @@ -81,6 +82,7 @@ android:layout_marginTop="5dp" android:background="#6B000000" /> </LinearLayout> <LinearLayout android:id="@+id/layout_2" @@ -107,6 +109,7 @@ android:textColor="#DE000000" android:textSize="@dimen/sp_16" tools:text="张四" android:text="@{viewModel.infoLiveData.oldName}" /> <View @@ -152,6 +155,7 @@ android:textColorHint="#6b000000" android:textSize="@dimen/sp_16" tools:text="男" android:text="@{String.valueOf(viewModel.infoLiveData.sex)}" /> <View @@ -184,6 +188,7 @@ android:textColorHint="#6b000000" android:textSize="@dimen/sp_16" tools:text="汉族" android:text="@{viewModel.infoLiveData.nationality}" /> <View @@ -216,7 +221,9 @@ android:textColor="#DE000000" android:textColorHint="#6b000000" android:textSize="@dimen/sp_16" tools:text="中国" /> tools:text="中国" android:text="@{viewModel.infoLiveData.nation}" /> <View android:layout_width="match_parent" @@ -247,7 +254,8 @@ android:textColor="#DE000000" android:textColorHint="#6b000000" android:textSize="@dimen/sp_16" tools:text="未婚" /> tools:text="未婚" android:text="@{String.valueOf(viewModel.infoLiveData.maritalStatus)}"/> <View android:layout_width="match_parent" @@ -278,7 +286,8 @@ android:textColor="#DE000000" android:textColorHint="#6b000000" android:textSize="@dimen/sp_16" tools:text="1234567890" /> tools:text="1234567890" android:text="@{viewModel.infoLiveData.phoneNumber}"/> <View android:layout_width="match_parent" @@ -311,13 +320,15 @@ android:textColor="#DE000000" android:textColorHint="#6b000000" android:textSize="@dimen/sp_16" tools:text="群众" /> tools:text="群众" android:text="@{viewModel.infoLiveData.politicalOutlook}"/> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginTop="5dp" android:background="#6B000000" /> android:background="#6B000000" /> </LinearLayout> <LinearLayout @@ -343,7 +354,8 @@ android:textColor="#DE000000" android:textColorHint="#6b000000" android:textSize="@dimen/sp_16" tools:text="440000199801010001" /> tools:text="440000199801010001" android:text="@{viewModel.infoLiveData.idNum}"/> <View android:layout_width="match_parent" @@ -375,13 +387,15 @@ android:textColor="#DE000000" android:textColorHint="#6b000000" android:textSize="@dimen/sp_16" tools:text="广东省广州市番禺区小谷围街道" /> tools:text="广东省广州市番禺区小谷围街道" android:text="@{viewModel.infoLiveData.locationAddress}" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginTop="5dp" android:background="#6B000000" /> </LinearLayout> <LinearLayout @@ -432,7 +446,7 @@ android:id="@+id/layout_9" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:orientation="vertical" app:layout_constraintTop_toBottomOf="@id/layout_8" android:layout_marginTop="30dp" > @@ -461,7 +475,7 @@ <androidx.recyclerview.widget.RecyclerView android:id="@+id/rv_relationship" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_height="wrap_content" android:background="@color/color_normal_background" android:layout_marginTop="16dp" tools:itemCount="3" @@ -629,6 +643,33 @@ android:textStyle="bold" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@+id/layout_12" /> <com.google.android.material.tabs.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabPaddingTop="@dimen/dp_22" app:layout_constraintTop_toBottomOf="@+id/tv_autobiography" app:tabMode="scrollable" app:tabGravity="fill" /> <androidx.viewpager.widget.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="@dimen/dp_0" android:layout_weight="1" app:layout_constraintTop_toBottomOf="@id/tab_layout"/> <TextView android:id="@+id/tv_fill" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_stroke" android:layout_marginBottom="20dp" android:layout_marginTop="@dimen/dp_2" android:paddingStart="10dp" android:paddingEnd="5dp" android:paddingVertical="10dp" app:layout_constraintTop_toBottomOf="@id/view_pager" /> app/src/main/res/layout/item_contacts.xml
New file @@ -0,0 +1,118 @@ <?xml version="1.0" encoding="utf-8"?> <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"> <data> <variable name="bean" type="com.application.zhangshi_app_android.bean.FamilyContactsBean" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <androidx.cardview.widget.CardView android:id="@+id/cardView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/dp_2" app:cardCornerRadius="@dimen/dp_10" app:cardBackgroundColor="@color/color_card_pink" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <RelativeLayout android:id="@+id/layout_title" android:layout_width="match_parent" android:layout_height="@dimen/dp_40" android:gravity="center_vertical|center_horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_gravity="center" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:gravity="center" android:textStyle="bold" tools:text="张三的通讯录" /> </RelativeLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingHorizontal="@dimen/dp_24" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="张二" android:textColor="@color/black" android:textSize="@dimen/sp_14" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:text="父亲" android:textColor="#80000000" android:textSize="@dimen/sp_12" android:layout_weight="1" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:text="张氏公司" android:textColor="#80000000" android:textSize="@dimen/sp_12" android:layout_weight="1" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:text="12345678901" android:textColor="#80000000" android:textSize="@dimen/sp_12" android:layout_weight="1" /> </LinearLayout> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> </layout> app/src/main/res/layout/item_growth_experience_abroad_condition.xml
@@ -6,7 +6,7 @@ <data> <variable name="bean" type="com.application.zhangshi_app_android.bean.GrowthExperienceBean" /> type="com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean" /> </data> <LinearLayout @@ -40,7 +40,7 @@ android:layout_marginStart="24dp" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.abroadZone}" android:text="@{bean.destination}" android:layout_weight="1" tools:text="香港" android:textStyle="bold" @@ -50,7 +50,7 @@ android:layout_height="wrap_content" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.duringTime}" android:text="@{bean.startDate}" android:textStyle="bold" android:layout_marginEnd="24dp" android:layout_alignParentEnd="true" @@ -83,7 +83,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" tools:text="探亲" android:text="@{bean.reason}" android:text="@{bean.cause}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" app/src/main/res/layout/item_growth_experience_holder_condition.xml
@@ -6,7 +6,7 @@ <data> <variable name="bean" type="com.application.zhangshi_app_android.bean.GrowthExperienceBean" /> type="com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean" /> </data> <LinearLayout @@ -39,7 +39,7 @@ android:layout_marginStart="24dp" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.passCheck}" android:text="@{bean.cerName}" android:layout_weight="1" tools:text="护照" android:textStyle="bold" @@ -49,7 +49,7 @@ android:layout_height="wrap_content" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.duringTime}" android:text="@{bean.validityDate}" android:textStyle="bold" android:layout_marginEnd="24dp" android:layout_alignParentEnd="true" @@ -81,10 +81,10 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="持有" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" android:text="@{bean.ownStatus}" /> </LinearLayout> <LinearLayout @@ -105,7 +105,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/black" android:text="@{bean.residenceNumber}" android:text="@{bean.idNo}" android:textSize="@dimen/sp_12" android:textStyle="bold" tools:text="123456789012345" app/src/main/res/layout/item_growth_experience_primary.xml
@@ -39,7 +39,7 @@ android:layout_marginStart="24dp" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.duringYear}" android:text="@{bean.startDate}" android:layout_weight="1" tools:text="2010-2016" android:textStyle="bold" @@ -49,7 +49,7 @@ android:layout_height="wrap_content" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.School}" android:text="@{bean.content}" android:textStyle="bold" android:layout_marginEnd="24dp" android:layout_alignParentEnd="true" app/src/main/res/layout/item_growth_experience_relationship.xml
@@ -6,7 +6,7 @@ <data> <variable name="bean" type="com.application.zhangshi_app_android.bean.GrowthExperienceBean" /> type="com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean" /> </data> <LinearLayout @@ -39,7 +39,7 @@ android:layout_marginStart="24dp" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.relationship}" android:text="@{bean.relation}" android:layout_weight="1" tools:text="夫妻" android:textStyle="bold" @@ -49,7 +49,7 @@ android:layout_height="wrap_content" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.associate}" android:text="@{bean.nickName}" android:textStyle="bold" android:layout_marginEnd="24dp" android:layout_alignParentEnd="true" @@ -81,7 +81,7 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.School}" android:text="@{bean.unit}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" @@ -104,7 +104,7 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.identity}" android:text="@{bean.position}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" @@ -128,7 +128,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/black" android:text="@{bean.politicalStatus}" android:text="@{bean.politicalOutlook}" android:textSize="@dimen/sp_12" android:textStyle="bold" /> app/src/main/res/values/colors.xml
@@ -23,6 +23,7 @@ <color name="color_FF666666_text_default">#FF666666</color> <color name="color_card_pink">#FFFFE2EF</color> <color name="color_card_blue">#FFE0EEFE</color> <color name="color_card_green">#FFEBFFF2</color> <color name="color_shadow">#88666666</color> </resources> app_base/src/main/java/com/android/app_base/base/adapter/BaseRVAdapter.java
@@ -190,7 +190,7 @@ /** * 设置新的数据 */ public void setData(@Nullable List<T> data) { public void setData(@Nullable Object data) { mDataList = data; notifyDataSetChanged(); }