From f21e1ae4b858b6a329b717eaf420d4a1e79d9509 Mon Sep 17 00:00:00 2001 From: Guo_shaoshan <2055829622@qq.com> Date: 星期一, 24 四月 2023 15:53:47 +0800 Subject: [PATCH] 自传和通讯录界面(未完成未修改) --- app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java | 267 +++++++++++++++++++++++++++++++---------------------- 1 files changed, 157 insertions(+), 110 deletions(-) diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java index 8adc678..2c797a4 100644 --- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java +++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java @@ -1,133 +1,180 @@ package com.application.zhangshi_app_android.ui.function; - import android.graphics.drawable.ColorDrawable; -import android.os.Bundle; -import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.PopupWindow; -import androidx.annotation.Nullable; -import com.android.app_base.base.BaseConfig; -import com.android.app_base.base.dialog.BaseDialog; -import com.android.app_base.base.dialog.UIDialog; -import com.android.app_base.base.view.BaseActivity; -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.bean.FamilyMemorabiliaBean; -import com.application.zhangshi_app_android.databinding.ItemFamilyCreateBinding; +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 com.google.android.material.tabs.TabLayout; +import java.util.List; /** * @author Gss * @date 2023.03.31. 16:00 * @desc 鎴愰暱缁忓巻 GrowthExperienceActivity */ -public class GrowthExperienceActivity { - public class GrowthExperienceActivity extends BaseActivity<GrowthExperienceActivityBinding,GrowthExperienceActivityViewModel> { - private int type; - private int operateType; - private PopupWindow popupWindow; +public class GrowthExperienceActivity extends DLBaseActivity<ActivityGrowthExperienceBinding,GrowthExperienceActivityViewModel> { + private GrowthExperiencePrimaryRvAdapter primaryRvAdapter; + private GrowthExperienceRelationshipRvAdapter relationshipRvAdapter; + private GrowthExperienceHolderConditionRvAdapter holderConditionRvAdapter; + private GrowthExperienceAbroadConditionRvAdapter abroadConditionRvAdapter; + @Override + public int getLayoutId() { + return R.layout.activity_growth_experience; + } + @Override + public int getVariableId() { + return BR.viewModel; + } - @Override - public int getLayoutId() { - return R.layout.activity_growth_experience; - } - - @Override - public int getVariableId() { - return BR.viewModel; - } - - @Override - public void initParam() { - type = getIntent().getIntExtra(BaseConfig.EXTRA_TYPE,0); - if (type == 0){ - GrowthExperienceBean bean = (GrowthExperienceBean) getIntent().getSerializableExtra("bean"); - if (bean!=null){ - viewModel.getBeanMutableLiveData().postValue(bean); - } - } - } - - @Override - public void initView() { - if (type == 1){ - binding.ivOperate.setBackgroundResource(R.drawable.ic_operate_finish); - binding.ivOperate.setOnClickListener(v -> { - viewModel.add(); - }); - }else { - binding.ivOperate.setBackgroundResource(R.drawable.ic_operate); - popupWindow = new PopupWindow(this); - // 璁剧疆甯冨眬鏂囦欢 - popupWindow.setContentView(LayoutInflater.from(this).inflate(R.layout.pop_operate_delete, null)); - // 涓轰簡閬垮厤閮ㄥ垎鏈哄瀷涓嶆樉绀猴紝闇�瑕侀噸鏂拌缃竴涓嬪楂� - 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鐐瑰嚮杩斿洖鎸夐挳浼氶��鍑哄綋鍓岮ctivity锛屽鏋減op涓湁Editor鐨勮瘽锛宖ocusable蹇呴』瑕佷负true - popupWindow.setFocusable(true); - // 璁剧疆pop鍙偣鍑伙紝涓篺alse鐐瑰嚮浜嬩欢鏃犳晥锛岄粯璁や负true - popupWindow.setTouchable(true); - // 璁剧疆鐐瑰嚮pop澶栦晶娑堝け锛岄粯璁や负false锛涘湪focusable涓簍rue鏃剁偣鍑诲渚у缁堟秷澶� - popupWindow.setOutsideTouchable(true); - - binding.ivOperate.setOnClickListener(v -> { - if (operateType == 0){ - popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0); - }else{ - viewModel.update(); - } - }); - popupWindow.getContentView().findViewById(R.id.tv_modify).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - binding.ivOperate.setBackgroundResource(R.drawable.ic_operate_finish); - operateType = 1; - popupWindow.dismiss(); - } - }); - popupWindow.getContentView().findViewById(R.id.tv_delete).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - popupWindow.dismiss(); - new UIDialog.Builder(getSelfActivity()) - .setTitle("鎮ㄧ‘瀹氳鍒犻櫎椤圭洰鍚�") - .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠") - .setConfirm("纭畾") - .setCancel("鍙栨秷") - .setListener(new UIDialog.OnListener() { - @Override - public void onConfirm(BaseDialog dialog) { - viewModel.delete(); - } - }) - .show(); - } - }); - } - } - - @Override - public void initData() { - - } - - - @Override - public void initLiveDataObserve() { - - } - + @Override + public void initParam() { } + // 璁剧疆閫変腑鏁堟灉 + + + @Override + public void initView() { + 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.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_16)); + + binding.rvPrimary.addItemDecoration(itemDecoration); + binding.rvPrimary.setAdapter(primaryRvAdapter); + binding.rvRelationship.addItemDecoration(itemDecoration); + binding.rvRelationship.setAdapter(relationshipRvAdapter); + binding.rvCertificates.addItemDecoration(itemDecoration); + binding.rvCertificates.setAdapter(holderConditionRvAdapter); + binding.rvAbroad.addItemDecoration(itemDecoration); + binding.rvAbroad.setAdapter(abroadConditionRvAdapter); + + //杩欓噷鐨則ab鏁伴噺灏辨槸鍚庡彴杩斿洖鐨勬暟鎹噺锛宼ab鐨勬爣棰樹篃鏄悗鍙拌繑鍥炵殑锛屼絾鏄瘂"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.getInfo(); + viewModel.getGrowthExperience(); + viewModel.getRelation(); + viewModel.getHolder(); + viewModel.getAbroad(); + viewModel.getGrowthExperienceAutobiography(); + } + + + @Override + public void initLiveDataObserve() { + 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){ + 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鐐瑰嚮杩斿洖鎸夐挳浼氶��鍑哄綋鍓岮ctivity锛屽鏋減op涓湁Editor鐨勮瘽锛宖ocusable蹇呴』瑕佷负true + popupWindow.setFocusable(true); + // 璁剧疆pop鍙偣鍑伙紝涓篺alse鐐瑰嚮浜嬩欢鏃犳晥锛岄粯璁や负true + popupWindow.setTouchable(true); + // 璁剧疆鐐瑰嚮pop澶栦晶娑堝け锛岄粯璁や负false锛涘湪focusable涓簍rue鏃剁偣鍑诲渚у缁堟秷澶� + popupWindow.setOutsideTouchable(false); + return popupWindow; + } } -- Gitblit v1.9.1