From a0dc6be52293a64ebfe38b8c2391dc7d2ffe63ae Mon Sep 17 00:00:00 2001 From: Linjiajia <319408893@qq.com> Date: 星期一, 15 五月 2023 20:05:27 +0800 Subject: [PATCH] 提交代码 --- app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivity.java | 62 ++++++++++++++++++------------ 1 files changed, 37 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivity.java index d160297..e47ded6 100644 --- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivity.java +++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivity.java @@ -5,15 +5,23 @@ import android.widget.PopupWindow; import androidx.databinding.library.baseAdapters.BR; +import androidx.lifecycle.Observer; 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.ContactsRvAdapter; +import com.application.zhangshi_app_android.bean.ContactsBean; +import com.application.zhangshi_app_android.bean.ContactsDetailBean; import com.application.zhangshi_app_android.databinding.ActivityContactsBinding; ; import com.application.zhangshi_app_android.ui.DLBaseActivity; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; /** * @author Gss @@ -48,9 +56,7 @@ 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); + mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_contacts_import,null)); binding.ivOperate.setOnClickListener(v -> { mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0); @@ -59,33 +65,39 @@ @Override public void initData() { -// viewModel.getFamilyContacts(); + viewModel.getContacts(); } @Override public void initLiveDataObserve() { -// viewModel.getDataListLiveData().observe(this, familyContactsBeans -> { -// adapter.setData(familyContactsBeans); -// }); + viewModel.getDataListLiveData().observe(this, contactsDetailBeans -> { + //鏍规嵁鍚嶅瓧鍒嗙粍 + Set<String> maNames = new HashSet<>(); + for (ContactsDetailBean bean : contactsDetailBeans) { + maNames.add(bean.getMyName()); + } + List<ContactsBean> list = new ArrayList<>(); + for (String name : maNames) { + ContactsBean bean = new ContactsBean(); + bean.setMyName(name); + List<ContactsDetailBean> detailBeans = new ArrayList<>(); + for (ContactsDetailBean detailBean : contactsDetailBeans) { + if (name.equals(detailBean.getMyName())) { + detailBeans.add(detailBean); + } + } + bean.setContactsDetailBeans(detailBeans); + list.add(bean); + } + adapter.setData(list); + }); } - public 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_operate); - // 璁剧疆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; + @Override + public void onClick(View v) { + super.onClick(v); + if (v.getId() == R.id.layout_contacts_import){ + mOperatePopupWindow.dismiss(); + } } } -- Gitblit v1.9.1