From 80f2ca2df62ff1cd03046864af504245be078eb2 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期四, 05 六月 2025 10:37:28 +0800 Subject: [PATCH] 2025年06月05日10:37:26 --- app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java | 148 ++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 114 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java index 61f9934..f1fced3 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java @@ -1,11 +1,16 @@ package com.hdl.photovoltaic.ui.powerstation; +import android.content.Context; +import android.os.AsyncTask; import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import android.view.View; +import android.view.inputmethod.InputMethodManager; import androidx.annotation.NonNull; import androidx.recyclerview.widget.LinearLayoutManager; @@ -21,6 +26,7 @@ import com.hdl.photovoltaic.enums.ShowErrorMode; import com.hdl.photovoltaic.enums.SortType; import com.hdl.photovoltaic.listener.CloudCallBeak; +import com.hdl.photovoltaic.other.HdlCommonLogic; import com.hdl.photovoltaic.other.HdlFileLogic; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.other.HdlResidenceLogic; @@ -31,6 +37,8 @@ import com.hdl.photovoltaic.ui.bean.HouseIdBean; import com.hdl.photovoltaic.uni.HDLUniMP; import com.hdl.photovoltaic.utils.KeyboardStateObserverUtils; +import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout; +import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder; import java.util.ArrayList; import java.util.Collections; @@ -40,7 +48,8 @@ * 鐢电珯鎼滅储鐣岄潰 */ public class HouseSearchActivity extends CustomBaseActivity { - + private Handler handler; + private Runnable delayedRunnable; private ActivityHouseSearchBinding viewBinding; SearchHistoryAdapter searchHistoryAdapter; @@ -65,6 +74,7 @@ @Override public void onBindView(Bundle savedInstanceState) { setStatusBarTranslucent(); + getWindow().setNavigationBarColor(getColor(R.color.text_FF000000)); //鍘嗗彶璁板綍鏂囦欢澶瑰垱寤� HdlFileLogic.getInstance().createFileDir(HdlFileLogic.getInstance().getCurrentUserRootPath()); //鍒濆鍖栨暟鎹� @@ -74,6 +84,8 @@ //鍒濆鍖栫晫闈㈢洃鍚櫒 initEvent(); } + + private void initData() { try { @@ -86,6 +98,57 @@ } catch (Exception ignored) { } } + + /** + * 涓嬫媺鍒锋柊鐨勯�昏緫 + */ + protected void pullToRefresh() { + viewBinding.listSrl.setDelegate(new BGARefreshLayout.BGARefreshLayoutDelegate() { + @Override + public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) { + handler = new Handler(Looper.getMainLooper()); + + delayedRunnable = new Runnable() { + @Override + public void run() { + viewBinding.listSrl.endRefreshing(); + loadNextPageHouseList(false, 1, true); + } + }; + // 寤惰繜 5 绉掓墽琛� + handler.postDelayed(delayedRunnable, 1000); + } + + + @Override + public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) { + + handler = new Handler(Looper.getMainLooper()); + delayedRunnable = new Runnable() { + @Override + public void run() { + viewBinding.listSrl.endLoadingMore(); + //鍔犺浇鏈�鏂版暟鎹畬鎴� + if (!isHouseLoadingMore) { + // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔 + loadNextPageHouseList(false, ++currentHouseListPage, false); + } + } + }; + // 寤惰繜 5 绉掓墽琛� + handler.postDelayed(delayedRunnable, 10); + + return true; + } + }); + HDLRefreshViewHolder hdlRefreshViewHolder = new HDLRefreshViewHolder(_mActivity, true); + hdlRefreshViewHolder.setPullDownImageResource(R.mipmap.loading_44); + hdlRefreshViewHolder.setChangeToReleaseRefreshAnimResId(R.drawable.loading_refresh); + hdlRefreshViewHolder.setRefreshingAnimResId(R.drawable.loading_refresh_end); + viewBinding.listSrl.setRefreshViewHolder(hdlRefreshViewHolder); + } + + private void initEvent() { @@ -112,42 +175,13 @@ } viewBinding.historyListParent.setVisibility(View.GONE); viewBinding.listParent.setVisibility(View.VISIBLE); + viewBinding.powerStationSearchEt.clearFocus(); + hideSoftInputFromWindow(); addSearchTextToList(); loadNextPageHouseList(true, 1, true); } }); - - //涓嬫媺绠ご棰滆壊 - viewBinding.listSrl.setColorSchemeResources(R.color.text_FF245EC3); - //涓嬫媺璇诲彇 - viewBinding.listSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { - @Override - public void onRefresh() { - viewBinding.listSrl.setRefreshing(false); - loadNextPageHouseList(true, 1, true); - } - }); - //涓婃媺璇诲彇 - viewBinding.listRcv.addOnScrollListener(new RecyclerView.OnScrollListener() { - @Override - public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { - LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager(); - if (layoutManager == null) { - return; - } - int visibleItemCount = layoutManager.getChildCount(); - int totalItemCount = layoutManager.getItemCount(); - int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition(); - if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) { - if (!isHouseLoadingMore) { - // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔 - HdlLogLogic.print("---婊戝姩鍒颁簡搴曢儴"); - loadNextPageHouseList(false, ++currentHouseListPage, false); - } - } - } - }); //娓呴櫎 viewBinding.powerStationClearIv.setOnClickListener(new View.OnClickListener() { @Override @@ -156,7 +190,10 @@ viewBinding.powerStationSearchEt.setText(""); viewBinding.historyListParent.setVisibility(View.VISIBLE); viewBinding.listParent.setVisibility(View.GONE); + viewBinding.deviceNullDataIc.getRoot().setVisibility(View.GONE); searchHistoryAdapter.setList(searchHistoryTitleList); + viewBinding.powerStationSearchEt.requestFocus(); + showSoftInput(); clearData(); } }); @@ -164,9 +201,13 @@ viewBinding.powerStationDelIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + viewBinding.powerStationSearchEt.clearFocus(); + hideSoftInputFromWindow(); searchHistoryTitleList = new ArrayList<>(); searchHistoryAdapter.setList(searchHistoryTitleList); + viewBinding.deviceNullDataIc.getRoot().setVisibility(View.GONE); HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath()); + } }); //鍘嗗彶璁板綍鐐瑰嚮浜嬩欢 @@ -180,10 +221,13 @@ HdlThreadLogic.toast(_mActivity, R.string.search_content_null); return; } + viewBinding.powerStationSearchEt.clearFocus(); + hideSoftInputFromWindow(); viewBinding.historyListParent.setVisibility(View.GONE); viewBinding.listParent.setVisibility(View.VISIBLE); addSearchTextToList(); loadNextPageHouseList(true, 1, true); + } }); //鐢电珯鐐瑰嚮鏄簨浠� @@ -192,12 +236,29 @@ public void onClick(int position, HouseIdBean houseIdBean) { //鐐瑰嚮浣忓畢璇︽儏 HdlLogLogic.print("鐐瑰嚮浣忓畢璇︽儏---" + new Gson().toJson(houseIdBean), false); - HdlResidenceLogic.getInstance().switchHouse(houseIdBean); + HdlResidenceLogic.getInstance().switchHouse(houseIdBean,true); String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS + "?homeId=" + houseIdBean.getHomeId() + "&homeName=" + houseIdBean.getHomeName() + "&powerStationStatus=" + houseIdBean.getPowerStationStatus(); HdlUniLogic.getInstance().openUniMP(path, null); } }); + } + + /** + * 鏄剧ず杞敭鐩� + */ + public void showSoftInput() { + InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + inputMethodManager.showSoftInput(viewBinding.powerStationSearchEt, 0); + + } + + /** + * 闅愯棌杞敭鐩� + */ + public void hideSoftInputFromWindow() { + InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + inputMethodManager.hideSoftInputFromWindow(viewBinding.getRoot().getWindowToken(), 0); } private void initView() { @@ -220,12 +281,14 @@ } }); + pullToRefresh(); + //鍦ㄧ晫闈腑浣跨敤 KeyboardStateObserverUtils.getKeyboardStateObserver(_mActivity).setKeyboardVisibilityListener(new KeyboardStateObserverUtils.OnKeyboardVisibilityListener() { @Override public void onKeyboardShow(int h) { //Toast.makeText(MainActivity.this,"閿洏寮瑰嚭",Toast.LENGTH_SHORT).show(); - viewBinding.powerStationSearchEt.requestFocus(); +// viewBinding.powerStationSearchEt.requestFocus(); } @@ -236,6 +299,8 @@ } }); + + } @@ -279,6 +344,9 @@ if (searchHistoryTitleList.size() > 0) { HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath()); HdlFileLogic.getInstance().appendFile(getHistoryFileNamePath(), new Gson().toJson(searchHistoryTitleList)); + } + if (handler != null && delayedRunnable != null) { + handler.removeCallbacks(delayedRunnable); } super.onDestroy(); } @@ -331,6 +399,7 @@ //鏇存柊UI searchHouseAdapter.setList(houseListBeanIDList); } + nullDataUpdateUi(); } } }, _mActivity, ShowErrorMode.YES); @@ -405,6 +474,7 @@ } } + /** * 娣诲姞鍘嗗彶璁板綍 */ @@ -424,9 +494,19 @@ } /** + * 娌℃湁鐢电珯鍒楄〃鐨勬牱寮� + */ + private void nullDataUpdateUi() { + boolean is_data = houseListBeanIDList != null && houseListBeanIDList.size() > 0; + HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity, viewBinding.deviceNullDataIc.getRoot(), viewBinding.deviceNullDataIc.nullDataGifAnimationIv, viewBinding.deviceNullDataIc.nullDataTv, getString(R.string.my_power_station_data_null), is_data); + } + + /** * 鑾峰彇銆愭悳绱㈠巻鍙茶褰曟枃浠躲�戝叏璺緞 */ public String getHistoryFileNamePath() { return HdlFileLogic.getInstance().getCurrentUserRootPath() + "/house_history.txt"; } + + } \ No newline at end of file -- Gitblit v1.8.0