package com.application.zhangshi_app_android.ui.function; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import android.widget.PopupWindow; 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.utils.ScreenSizeUtils; import com.android.app_base.utils.Utils; import com.android.app_base.utils.rxbus.MessageEvent; import com.android.app_base.utils.rxbus.RxBus; 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.adapter.DailyConsumeRecordRvAdapter; import com.application.zhangshi_app_android.bean.ConsumeRecordBean; import com.application.zhangshi_app_android.bean.DailyConsumeRecordBean; import com.application.zhangshi_app_android.bean.TourismBean; import com.application.zhangshi_app_android.databinding.ActivityTourismDetailBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; import com.github.gzuliyujiang.wheelpicker.DatePicker; import com.github.gzuliyujiang.wheelpicker.OptionPicker; import com.github.gzuliyujiang.wheelpicker.annotation.DateMode; import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener; import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.HashSet; import java.util.List; import java.util.Set; import io.reactivex.functions.Consumer; /** * @author Ljj * @date 2023.04.28. 22:05 * @desc */ public class TourismDetailActivity extends DLBaseActivity { private int type;// 0 查看可修改删除 1 新增 2 直接修改 private PopupWindow popupWindow; @Override public int getLayoutId() { return R.layout.activity_tourism_detail; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { type = getIntent().getIntExtra(BaseConfig.EXTRA_TYPE,0); if (type == 0 || type == 2){ TourismBean bean = (TourismBean) getIntent().getSerializableExtra("bean"); if (bean != null){ viewModel.getBeanLiveData().setValue(bean); } } } @Override public void initView() { if (type == 1){ viewModel.getTypeLiveData().setValue(true); binding.titleBar.setTitle("新增旅游费用记录"); }else if (type == 0){ popupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate_delete,null)); popupWindow.getContentView().findViewById(R.id.tv_modify).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { viewModel.getTypeLiveData().setValue(true); 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(); } }); viewModel.getTypeLiveData().setValue(false); }else if (type == 2){ viewModel.getTypeLiveData().setValue(true); } binding.etStartTime.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DatePicker datePicker = getDatePicker(); datePicker.setTitle("选择开始时间"); datePicker.setOnDatePickedListener(new OnDatePickedListener() { @Override public void onDatePicked(int year, int month, int day) { //以yyyy-MM-dd的格式显示,月日小于10时前面补0 binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day)); String startTime = binding.etStartTime.getText().toString(); String endTime = binding.etEndTime.getText().toString(); if (TextUtils.isEmpty(endTime)){ binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day)); endTime = binding.etEndTime.getText().toString(); }else { //比较开始时间和结束时间的大小 if (Utils.compareDate(startTime,endTime) > 0){ //交换 binding.etStartTime.setText(endTime); binding.etEndTime.setText(startTime); } } binding.etStartTime.clearFocus(); } }); datePicker.show(); } }); binding.etEndTime.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DatePicker datePicker = getDatePicker(); datePicker.setTitle("选择结束时间"); datePicker.setOnDatePickedListener(new OnDatePickedListener() { @Override public void onDatePicked(int year, int month, int day) { binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month , day)); String startTime = binding.etStartTime.getText().toString(); String endTime = binding.etEndTime.getText().toString(); if (TextUtils.isEmpty(startTime)){ binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day)); startTime = binding.etStartTime.getText().toString(); }else { //比较开始时间和结束时间的大小 if (Utils.compareDate(startTime,endTime) > 0){ //交换 binding.etStartTime.setText(endTime); binding.etEndTime.setText(startTime); } } binding.etEndTime.clearFocus(); } }); datePicker.show(); } }); binding.etWhereabouts.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { List list = Arrays.asList("国内","国外"); OptionPicker picker = getOptionPicker(list); picker.setTitle("选择去向"); picker.setOnOptionPickedListener(new OnOptionPickedListener() { @Override public void onOptionPicked(int position, Object item) { binding.etWhereabouts.setText(item.toString()); binding.etWhereabouts.clearFocus(); } }); picker.show(); } }); binding.etTourismNature.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { List list = Arrays.asList("公费","自费","邀请"); OptionPicker picker = getOptionPicker(list); picker.setTitle("选择旅游性质"); picker.setOnOptionPickedListener(new OnOptionPickedListener() { @Override public void onOptionPicked(int position, Object item) { binding.etTourismNature.setText(item.toString()); binding.etTourismNature.clearFocus(); } }); picker.show(); } }); binding.etTourismWay.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { List list = Arrays.asList("参团","自由行","自驾游","半自由半自驾","其他"); OptionPicker picker = getOptionPicker(list); picker.setTitle("选择旅游方式"); picker.setOnOptionPickedListener(new OnOptionPickedListener() { @Override public void onOptionPicked(int position, Object item) { binding.etTourismWay.setText(item.toString()); binding.etTourismWay.clearFocus(); } }); picker.show(); } }); } @Override public void initData() { } @Override public void initLiveDataObserve() { viewModel.getBeanLiveData().observe(this, bean -> { }); viewModel.getTypeLiveData().observe(this, operateType -> { if (operateType) { if (type == 1) { binding.ivOperate.setOnClickListener(v -> { viewModel.add(); }); } else { binding.ivOperate.setOnClickListener(v -> { viewModel.update(); }); } } else { binding.ivOperate.setOnClickListener(v -> { popupWindow.showAsDropDown(binding.ivOperate, -ScreenSizeUtils.dip2px(this, 85) + binding.ivOperate.getWidth(), 0); }); } }); } }