Guo_shaoshan
2023-04-09 ab9e0ae52d360fbe512bfbd3205206fcf4221be9
app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java
@@ -1,133 +1,108 @@
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.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.FamilyAssetsRvAdapter;
import com.application.zhangshi_app_android.adapter.GrowthExperiencePrimaryRvAdapter;
import com.application.zhangshi_app_android.bean.GrowthExperienceBean;
import com.application.zhangshi_app_android.databinding.ActivityGrowthExperienceBinding;
import com.application.zhangshi_app_android.ui.DLBaseActivity;
import java.util.ArrayList;
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 adapter;
    @Override
    public int getLayoutId() {
        return R.layout.activity_growth_experience;
    }
    @Override
    public int getVariableId() {
        return BR.viewModel;
    }
    @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 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() {
        }
    @Override
    public void initView() {
        adapter = new GrowthExperiencePrimaryRvAdapter(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.rvPrimary.addItemDecoration(itemDecoration);
        binding.rvPrimary.setAdapter(adapter);
        binding.rvRelationship.addItemDecoration(itemDecoration);
        binding.rvRelationship.setAdapter(adapter);
        binding.rvCertificates.addItemDecoration(itemDecoration);
        binding.rvCertificates.setAdapter(adapter);
        binding.rvAbroad.addItemDecoration(itemDecoration);
        binding.rvAbroad.setAdapter(adapter);
    }
    @Override
    public void initData() {
        viewModel.getGrowthExperience();
    }
    @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);
        });
    }
    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;
    }
}