Guo_shaoshan
2023-04-04 717bcb657c22156cb99468ae1649c55ac20d15dd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
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 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.31. 16:00
 * @desc 成长经历 GrowthExperienceActivity
 */
public class GrowthExperienceActivity {
    public class GrowthExperienceActivity extends BaseActivity<GrowthExperienceActivityBinding,GrowthExperienceActivityViewModel> {
        private int type;
        private int operateType;
        private PopupWindow popupWindow;
 
 
 
        @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点击返回按钮会退出当前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() {
 
        }
 
 
    }
 
}