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 androidx.databinding.DataBindingUtil; 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 com.android.app_base.utils.ToastUtils; 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; /** * @author Gss * @date 2023.03.25. 16:00 * @desc 家大事记 CreateFamilyProjectActivity */ public class CreateFamilyProjectActivity extends BaseActivity { private int type; private int operateType; private PopupWindow popupWindow; @Override public int getLayoutId() { return R.layout.item_family_create; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { type = getIntent().getIntExtra(BaseConfig.EXTRA_TYPE,0); if (type == 0){ FamilyMemorabiliaBean bean = (FamilyMemorabiliaBean) 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点击返回按钮会退出当前Activity,如果pop中有Editor的话,focusable必须要为true popupWindow.setFocusable(true); // 设置pop可点击,为false点击事件无效,默认为true popupWindow.setTouchable(true); // 设置点击pop外侧消失,默认为false;在focusable为true时点击外侧始终消失 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() { } }