From 30859ca8f2175475d2c666353bc27f3b2ceede53 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 22 八月 2024 13:43:47 +0800 Subject: [PATCH] 2024年08月22日13:43:45 --- app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java | 75 +++++++++++++++++++++++++++++++++++-- 1 files changed, 71 insertions(+), 4 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 96835b0..e9e9c68 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,13 @@ package com.hdl.photovoltaic.ui.powerstation; +import android.content.Context; import android.os.Bundle; 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 +23,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; @@ -30,6 +33,7 @@ import com.hdl.photovoltaic.ui.adapter.SearchHouseAdapter; import com.hdl.photovoltaic.ui.bean.HouseIdBean; import com.hdl.photovoltaic.uni.HDLUniMP; +import com.hdl.photovoltaic.utils.KeyboardStateObserverUtils; import java.util.ArrayList; import java.util.Collections; @@ -111,6 +115,8 @@ } viewBinding.historyListParent.setVisibility(View.GONE); viewBinding.listParent.setVisibility(View.VISIBLE); + viewBinding.powerStationSearchEt.clearFocus(); + hideSoftInputFromWindow(); addSearchTextToList(); loadNextPageHouseList(true, 1, true); } @@ -145,6 +151,7 @@ loadNextPageHouseList(false, ++currentHouseListPage, false); } } + } }); //娓呴櫎 @@ -155,7 +162,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(); } }); @@ -163,9 +173,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()); + } }); //鍘嗗彶璁板綍鐐瑰嚮浜嬩欢 @@ -179,10 +193,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); + } }); //鐢电珯鐐瑰嚮鏄簨浠� @@ -199,6 +216,23 @@ } + /** + * 鏄剧ず杞敭鐩� + */ + 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() { viewBinding.historyListParent.setVisibility(View.VISIBLE); viewBinding.listParent.setVisibility(View.GONE); @@ -212,6 +246,29 @@ searchHouseAdapter = new SearchHouseAdapter(_mActivity); viewBinding.listRcv.setLayoutManager(new LinearLayoutManager(_mActivity)); viewBinding.listRcv.setAdapter(searchHouseAdapter); + viewBinding.powerStationSearchEt.post(new Runnable() { + @Override + public void run() { + viewBinding.powerStationSearchEt.requestFocus(); + } + }); + + //鍦ㄧ晫闈腑浣跨敤 + KeyboardStateObserverUtils.getKeyboardStateObserver(_mActivity).setKeyboardVisibilityListener(new KeyboardStateObserverUtils.OnKeyboardVisibilityListener() { + @Override + public void onKeyboardShow(int h) { + //Toast.makeText(MainActivity.this,"閿洏寮瑰嚭",Toast.LENGTH_SHORT).show(); +// viewBinding.powerStationSearchEt.requestFocus(); + + } + + @Override + + public void onKeyboardHide(int h) { + viewBinding.powerStationSearchEt.clearFocus(); + } + + }); } @@ -307,6 +364,7 @@ //鏇存柊UI searchHouseAdapter.setList(houseListBeanIDList); } + nullDataUpdateUi(); } } }, _mActivity, ShowErrorMode.YES); @@ -381,19 +439,18 @@ } } + /** * 娣诲姞鍘嗗彶璁板綍 */ private void addSearchTextToList() { - int maxValue = 10; for (int i = 0; i < searchHistoryTitleList.size(); i++) { if (searchHistoryTitleList.get(i).equals(currSearchText)) { searchHistoryTitleList.remove(searchHistoryTitleList.get(i)); } } - searchHistoryTitleList.add(currSearchText); - // 鍊掑簭鎺掑垪鏁版嵁(鎼滅储鏈�鍚庢帓鍦ㄥ墠闈�) - Collections.reverse(searchHistoryTitleList); + int maxValue = 10; + searchHistoryTitleList.add(0, currSearchText); if (searchHistoryTitleList.size() > maxValue) { //鍘嗗彶璁板綍涓嶈兘瓒呭嚭10 searchHistoryTitleList.remove(searchHistoryTitleList.get(maxValue)); @@ -402,9 +459,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