package com.ckkj.water.plan; import android.os.Bundle; import android.view.View; import com.chad.library.adapter.base.BaseQuickAdapter; import com.ckkj.water.R; import com.ckkj.water.base.BaseFragment; import com.ckkj.water.databinding.PlanBoundDeviceLayoutBinding; import com.ckkj.water.index.entity.WaterDeviceEntity; import com.ckkj.water.network.BaseBean; import com.ckkj.water.plan.adapter.PlanBoundDeviceAdapter; import com.ckkj.water.plan.entity.WaterPlanWeekEntity; import com.ckkj.water.plan.mvp.WaterPlanContract; import com.ckkj.water.plan.mvp.WaterPlanImpl; import com.ckkj.water.plan.mvp.WaterPlanPresenter; import com.ckkj.water.utils.show.ToastUtil; import java.util.List; /** * @author fengxiaoyang * @date 2026/5/29 * @description 已绑定的设备列表 */ public class PlanBoundDeviceFragment extends BaseFragment implements WaterPlanContract.WaterPlanView{ private WaterPlanWeekEntity mEditEntity; private PlanBoundDeviceAdapter mAdapter; @Override public void initData(Bundle state) { // 初始化适配器,如果有数据则设置 if (mEditEntity != null && mEditEntity.getDeviceIds() != null) { mAdapter = new PlanBoundDeviceAdapter(mContext, R.layout.plan_bound_device_item, mEditEntity.getDeviceIds()); viewBinding.rvDevices.setAdapter(mAdapter); // 根据数据状态显示/隐藏视图 if (mEditEntity.getDeviceIds().isEmpty()) { viewBinding.linearContent.setVisibility(View.GONE); viewBinding.relNoresult.setVisibility(View.VISIBLE); } else { viewBinding.linearContent.setVisibility(View.VISIBLE); viewBinding.relNoresult.setVisibility(View.GONE); } } else { // 无数据时显示空状态 viewBinding.linearContent.setVisibility(View.GONE); viewBinding.relNoresult.setVisibility(View.VISIBLE); } if(mAdapter != null){ mAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() { @Override public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) { switch (view.getId()){ case R.id.img_delete: showDialogtext(null, false, false, "提示", "确定解绑该设备?", "取消", "解绑", new OnDialogClick() { @Override public void onCancelClick() { } @Override public void onConfirmClick() { showLoadingDialog(); mPresenter.planUnbindDevice(mEditEntity.getId(), mEditEntity.getDeviceIds().get(position).getId(), position); } }); break; } } }); } } public void setEditEntity(WaterPlanWeekEntity entity) { this.mEditEntity = entity; // 使用 getView().post() 确保视图已初始化完成 if (getView() != null) { getView().post(() -> { if (viewBinding != null) { updateUI(); } }); } } private void updateUI() { if (viewBinding == null) { return; } if (mEditEntity == null || mEditEntity.getDeviceIds() == null) { viewBinding.linearContent.setVisibility(View.GONE); viewBinding.relNoresult.setVisibility(View.VISIBLE); return; } if (mEditEntity.getDeviceIds().isEmpty()) { viewBinding.linearContent.setVisibility(View.GONE); viewBinding.relNoresult.setVisibility(View.VISIBLE); } else { viewBinding.linearContent.setVisibility(View.VISIBLE); viewBinding.relNoresult.setVisibility(View.GONE); if (mAdapter != null) { mAdapter.setNewData(mEditEntity.getDeviceIds()); } } } public WaterPlanWeekEntity getEditEntity() { return mEditEntity; } @Override public WaterPlanPresenter createPresenter() { return new WaterPlanPresenter(new WaterPlanImpl()); } @Override public void getWaterConfigListSuccess(List list, int total) { } @Override public void saveConfigSuccess(WaterPlanWeekEntity entity) { } @Override public void updateConfigSuccess(WaterPlanWeekEntity entity) { } @Override public void updatePlanStatusSuccess(BaseBean bean, String status) { } @Override public void getPlanDetailInfo(WaterPlanWeekEntity entity) { } @Override public void getPlanBindDeviceList(WaterDeviceEntity bean) { } @Override public void planBindDeviceSuccess(BaseBean bean) { } @Override public void deletePlanSuccess(BaseBean bean) { } @Override public void planUnbindDeviceSuccess(BaseBean bean, int position) { hideDialogLoading(); ToastUtil.showShort(mContext, "解绑成功"); mAdapter.notifyItemRemoved(position); mEditEntity.getDeviceIds().remove(position); if (mAdapter.getItemCount() != 0) { viewBinding.relNoresult.setVisibility(View.GONE); viewBinding.linearContent.setVisibility(View.VISIBLE); } else { viewBinding.relNoresult.setVisibility(View.VISIBLE); viewBinding.linearContent.setVisibility(View.GONE); } } @Override public void onNetChange(int netModel) { } @Override public void showError(String message) { } @Override public void logOut(BaseBean bean) { } }