app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
@@ -99,6 +99,8 @@ return getAPPInternalStoreFilesPath() + "/upgrade/firmware"; } /** * 获取【日志文件】全路径 */ @@ -319,7 +321,7 @@ } // System.out.println("写入一行数据到文件成功--->" + dataLine); } catch (Exception e) { // System.out.println("写入一行数据到文件有异常--->" + e.getMessage()); System.out.println("写入一行数据到文件有异常--->" + e.getMessage()); } } app/src/main/java/com/hdl/photovoltaic/ui/adapter/DeviceInfoAdapter.java
@@ -47,7 +47,7 @@ public void onClick(View v) { try { if (mOnclickListener != null) { mOnclickListener.onClick((int) holder.item_parent_rl.getTag(), deviceBean); mOnclickListener.onClick((int) holder.itemView.getTag(), deviceBean); } } catch (Exception ignored) { } app/src/main/java/com/hdl/photovoltaic/ui/adapter/SearchDeviceAdapter.java
New file @@ -0,0 +1,99 @@ package com.hdl.photovoltaic.ui.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.ui.bean.DeviceBean; import java.util.ArrayList; import java.util.List; public class SearchDeviceAdapter extends RecyclerView.Adapter<SearchDeviceAdapter.MyViewHolder> { List<DeviceBean> mList; Context mContext; DeviceInfoAdapter.OnClickListener mOnclickListener; public SearchDeviceAdapter(Context context) { this.mContext = context; } @NonNull @Override public SearchDeviceAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_search_house, parent, false); return new MyViewHolder(view); } @Override public void onBindViewHolder(@NonNull SearchDeviceAdapter.MyViewHolder holder, int position) { DeviceBean deviceBean = this.mList.get(position); holder.power_station_name_tv.setText(deviceBean.getHomeName()); holder.power_station_location_tv.setText(deviceBean.getAddress()); holder.itemView.setTag(position); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { if (mOnclickListener != null) { mOnclickListener.onClick((int) holder.itemView.getTag(), deviceBean); } } catch (Exception ignored) { } } }); } @Override public int getItemCount() { return this.mList == null ? 0 : this.mList.size(); } public void setOnclickListener(DeviceInfoAdapter.OnClickListener onClickListener) { this.mOnclickListener = onClickListener; } public void setList(List<DeviceBean> newData) { if (this.mList == null) { this.mList = new ArrayList<>(); } else { this.mList.clear(); } this.mList.addAll(newData); notifyDataSetChanged(); } public interface OnClickListener { void onClick(int position, DeviceBean deviceBean); } /** * 一行布局容器 */ static class MyViewHolder extends RecyclerView.ViewHolder { public TextView power_station_name_tv; public TextView power_station_location_tv; public MyViewHolder(@NonNull View itemView) { super(itemView); power_station_name_tv = itemView.findViewById(R.id.power_station_name_tv); power_station_location_tv = itemView.findViewById(R.id.power_station_location_tv); } } } app/src/main/java/com/hdl/photovoltaic/ui/adapter/SearchHistoryAdapter.java
New file @@ -0,0 +1,97 @@ package com.hdl.photovoltaic.ui.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.hdl.photovoltaic.R; import java.util.ArrayList; import java.util.List; /** * 历史记录适配器 */ public class SearchHistoryAdapter extends RecyclerView.Adapter<SearchHistoryAdapter.MyViewHolder> { List<String> mList; Context mContext; OnClickListener mOnclickListener; public SearchHistoryAdapter(Context context) { this.mContext = context; } @NonNull @Override public SearchHistoryAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_history_title, parent, false); return new MyViewHolder(view); } @Override public void onBindViewHolder(@NonNull SearchHistoryAdapter.MyViewHolder holder, int position) { String history_title = this.mList.get(position); holder.history_title_tv.setText(history_title); holder.itemView.setTag(position); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { if (mOnclickListener != null) { mOnclickListener.onClick((int) holder.itemView.getTag(), history_title); } } catch (Exception ignored) { } } }); } @Override public int getItemCount() { return this.mList == null ? 0 : this.mList.size(); } public void setOnclickListener(OnClickListener onClickListener) { this.mOnclickListener = onClickListener; } public void setList(List<String> newData) { if (this.mList == null) { this.mList = new ArrayList<>(); } else { this.mList.clear(); } this.mList.addAll(newData); notifyDataSetChanged(); } public interface OnClickListener { void onClick(int position, String title); } static class MyViewHolder extends RecyclerView.ViewHolder { public TextView history_title_tv; public MyViewHolder(@NonNull View itemView) { super(itemView); history_title_tv = itemView.findViewById(R.id.history_title_tv); } } } app/src/main/java/com/hdl/photovoltaic/ui/adapter/SearchHouseAdapter.java
New file @@ -0,0 +1,102 @@ package com.hdl.photovoltaic.ui.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.ui.bean.HouseIdBean; import java.util.ArrayList; import java.util.List; /** * 搜索电站适配器 */ public class SearchHouseAdapter extends RecyclerView.Adapter<SearchHouseAdapter.MyViewHolder> { List<HouseIdBean> mList; Context mContext; OnClickListener mOnclickListener; public SearchHouseAdapter(Context context) { this.mContext = context; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_search_house, parent, false); return new MyViewHolder(view); } @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { HouseIdBean houseIdBean = this.mList.get(position); holder.power_station_name_tv.setText(houseIdBean.getHomeName()); holder.power_station_location_tv.setText(houseIdBean.getAddress()); holder.itemView.setTag(position); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { if (mOnclickListener != null) { mOnclickListener.onClick((int) holder.itemView.getTag(), houseIdBean); } } catch (Exception ignored) { } } }); } @Override public int getItemCount() { return this.mList == null ? 0 : this.mList.size(); } public void setOnclickListener(OnClickListener onClickListener) { this.mOnclickListener = onClickListener; } public void setList(List<HouseIdBean> newData) { if (this.mList == null) { this.mList = new ArrayList<>(); } else { this.mList.clear(); } this.mList.addAll(newData); notifyDataSetChanged(); } public interface OnClickListener { void onClick(int position, HouseIdBean houseIdBean); } /** * 一行布局容器 */ static class MyViewHolder extends RecyclerView.ViewHolder { public TextView power_station_name_tv; public TextView power_station_location_tv; public MyViewHolder(@NonNull View itemView) { super(itemView); power_station_name_tv = itemView.findViewById(R.id.power_station_name_tv); power_station_location_tv = itemView.findViewById(R.id.power_station_location_tv); } } } app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseIdBean.java
@@ -27,6 +27,11 @@ private boolean state_select = false;//表示是否显示选中组件(true显示) private HouseInfoBean.Location location;//电站地址 private String address;//详细地址 public boolean isState_select() { return state_select; @@ -117,5 +122,31 @@ this.localSecret = localSecret; } public HouseInfoBean.Location getLocation() { return location == null ? new HouseInfoBean.Location() : location; } public void setLocation(HouseInfoBean.Location location) { this.location = location; } public String getAddress() { return address == null ? "" : address; } public void setAddress(String address) { this.address = address; } /** * 拼住宅地址 * * @return 住宅地址 */ public String getHomeAddress() { if (this.location == null) { return this.address; } return this.location.getNationName() + this.location.getProvinceName() + this.location.getCityName() + this.address; } } app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseInfoBean.java
@@ -4,8 +4,7 @@ * 电站详情实体类 */ public class HouseInfoBean extends HouseIdBean { private Location location;//电站地址 private String address;//详细地址 private String latitude;//纬度 private String longitude;//经度 private String timezone;//时区 @@ -18,22 +17,6 @@ private String zoneType;//区域 public Location getLocation() { return location == null ? new Location() : location; } public void setLocation(Location location) { this.location = location; } public String getAddress() { return address == null ? "" : address; } public void setAddress(String address) { this.address = address; } public String getLatitude() { return latitude == null ? "" : latitude; @@ -177,15 +160,5 @@ } /** * 拼住宅地址 * * @return 住宅地址 */ public String getHomeAddress() { if (this.location == null) { return this.address; } return this.location.nationName + this.location.provinceName + this.location.cityName + this.address; } } app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
@@ -1,5 +1,6 @@ package com.hdl.photovoltaic.ui.powerstation; import android.content.Intent; import android.content.pm.PackageManager; import android.os.Bundle; import android.view.View; @@ -133,12 +134,21 @@ } }); //添加电站 //电站添加 viewBinding.addIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); } }); //电站添搜索 viewBinding.powerStationSearchClickCl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(_mActivity, HouseSearchActivity.class); startActivity(intent); } }); //电站设置下拉箭头颜色 @@ -173,7 +183,7 @@ } } }); //进入电站详情,删除电站,移动电站位置 //电站详情进入,删除电站,移动电站位置 houseInfoAdapter.setNoOnclickListener(new HouseInfoAdapter.OnclickListener() { @Override public void onClick(int position, HouseIdBean houseIdBean) { @@ -269,7 +279,7 @@ } }); //编辑电站按钮 //电站编辑按钮 viewBinding.editIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -287,7 +297,7 @@ value = isSelected ? SortValue.ascending : SortValue.descending; } }); //发电功率筛选 //电站发电功率筛选 viewBinding.stationPowerRl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -298,7 +308,7 @@ value = isSelected ? SortValue.ascending : SortValue.descending; } }); //当日发电量筛选 //电站当日发电量筛选 viewBinding.stationDayRl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -309,7 +319,7 @@ value = isSelected ? SortValue.ascending : SortValue.descending; } }); //当月发电量筛选 //电站当月发电量筛选 viewBinding.stationMonthRl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -320,7 +330,7 @@ value = isSelected ? SortValue.ascending : SortValue.descending; } }); //点击设备 //设备点击 deviceInfoAdapter.setOnclickListener(new DeviceInfoAdapter.OnClickListener() { @Override public void onClick(int position, DeviceBean deviceBean) { app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java
@@ -2,19 +2,391 @@ import android.os.Bundle; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import android.view.View; import androidx.annotation.NonNull; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseActivity; import com.hdl.photovoltaic.databinding.ActivityHouseSearchBinding; import com.hdl.photovoltaic.enums.ShowErrorMode; import com.hdl.photovoltaic.enums.SortType; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.other.HdlFileLogic; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.other.HdlResidenceLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.ui.adapter.SearchHistoryAdapter; import com.hdl.photovoltaic.ui.adapter.SearchHouseAdapter; import com.hdl.photovoltaic.ui.bean.HouseIdBean; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * 电站搜索界面 */ public class HouseSearchActivity extends CustomBaseActivity { private ActivityHouseSearchBinding viewBinding; SearchHistoryAdapter searchHistoryAdapter; SearchHouseAdapter searchHouseAdapter; private List<HouseIdBean> houseListBeanIDList = new ArrayList<>(); private int currentHouseListPage = 0; // 当前电站列表页码 private int currentHouseListTotal = 0; // 电站列表总页码 private boolean isHouseLoadingMore = false; // 标记电站列表正在加载更多数据 private String currSearchText; List<String> SearchHistoryTitleList = new ArrayList<>(); @Override public Object getContentView() { return null; viewBinding = ActivityHouseSearchBinding.inflate(getLayoutInflater()); return viewBinding.getRoot(); } @Override public void onBindView(Bundle savedInstanceState) { setStatusBarTranslucent(); //历史记录文件夹创建 HdlFileLogic.getInstance().createFileDir(HdlFileLogic.getInstance().getCurrentUserRootPath()); //初始化数据 initData(); //初始化 initView(); //初始化界面监听器 initEvent(); } private void initData() { try { String json = HdlFileLogic.getInstance().readFile(getHistoryFileNamePath()); if (TextUtils.isEmpty(json)) { return; } SearchHistoryTitleList = new Gson().fromJson(json, new TypeToken<List<String>>() { }.getType()); } catch (Exception ignored) { } } private void initEvent() { //后退 viewBinding.backRl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); viewBinding.powerStationSearchEt.addTextChangedListener(textWatcher); //搜索 viewBinding.powerStationSearchTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //搜索关键字 currSearchText = viewBinding.powerStationSearchEt.getText().toString().replace(" ", ""); if (TextUtils.isEmpty(currSearchText)) { HdlThreadLogic.toast(_mActivity, R.string.search_content_null); return; } viewBinding.historyListParent.setVisibility(View.GONE); viewBinding.listParent.setVisibility(View.VISIBLE); 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 public void onClick(View v) { currSearchText = ""; viewBinding.powerStationSearchEt.setText(""); viewBinding.historyListParent.setVisibility(View.VISIBLE); viewBinding.listParent.setVisibility(View.GONE); searchHistoryAdapter.setList(SearchHistoryTitleList); clearData(); } }); //删除 viewBinding.powerStationDelIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SearchHistoryTitleList = new ArrayList<>(); searchHistoryAdapter.setList(SearchHistoryTitleList); HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath()); } }); //历史记录点击事件 searchHistoryAdapter.setOnclickListener(new SearchHistoryAdapter.OnClickListener() { @Override public void onClick(int position, String title) { viewBinding.powerStationSearchEt.setText(title); } }); //电站点击是事件 searchHouseAdapter.setOnclickListener(new SearchHouseAdapter.OnClickListener() { @Override public void onClick(int position, HouseIdBean houseIdBean) { } }); } private void initView() { viewBinding.historyListParent.setVisibility(View.VISIBLE); viewBinding.listParent.setVisibility(View.GONE); viewBinding.powerStationClearIv.setVisibility(View.GONE); //初始化历史记录适配器 searchHistoryAdapter = new SearchHistoryAdapter(_mActivity); viewBinding.historyListRcv.setLayoutManager(new LinearLayoutManager(_mActivity)); viewBinding.historyListRcv.setAdapter(searchHistoryAdapter); searchHistoryAdapter.setList(SearchHistoryTitleList); //初始化电站适配器 searchHouseAdapter = new SearchHouseAdapter(_mActivity); viewBinding.listRcv.setLayoutManager(new LinearLayoutManager(_mActivity)); viewBinding.listRcv.setAdapter(searchHouseAdapter); } /** * 输入电站名称进行过滤 */ private final TextWatcher textWatcher = new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { String et = viewBinding.powerStationSearchEt.getText().toString().replace(" ", ""); if (TextUtils.isEmpty(et)) { viewBinding.powerStationClearIv.setVisibility(View.GONE); } else { viewBinding.powerStationClearIv.setVisibility(View.VISIBLE); } viewBinding.powerStationSearchEt.setSelection(viewBinding.powerStationSearchEt.length()); } }; /** * 物理按键返回事件 */ @Override public void onBackPressed() { super.onBackPressed(); } @Override protected void onDestroy() { viewBinding.powerStationSearchEt.removeTextChangedListener(textWatcher); if (SearchHistoryTitleList.size() > 0) { HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath()); HdlFileLogic.getInstance().appendFile(getHistoryFileNamePath(), new Gson().toJson(SearchHistoryTitleList)); } super.onDestroy(); } /** * 刷新UI(电站) * * @param isRefreshing 表示是下拉刷新的 */ private void loadNextPageHouseList(boolean isRefreshing, long pageNo, boolean isClear) { //搜索关键字 if (TextUtils.isEmpty(currSearchText)) { return; } if (isClear) { clearData(); } //第一页读取数据强制读取 if (pageNo > 1 && currentHouseListPage > currentHouseListTotal) { --currentHouseListPage; //当前页不能大于总页数 return; } isHouseLoadingMore = true;//标记读取状态 if (isRefreshing) { showLoading(); } //获取住宅(电站)ID列表 HdlResidenceLogic.getInstance().getResidenceIdList(SortType.homeName, currSearchText, pageNo, 20, new CloudCallBeak<HdlResidenceLogic.HouseBeanClass>() { @Override public void onSuccess(HdlResidenceLogic.HouseBeanClass houseBeanClass) { HdlThreadLogic.runMainThread(new Runnable() { @Override public void run() { if (isRefreshing) { hideLoading(); } isHouseLoadingMore = false; if (houseBeanClass != null) { currentHouseListTotal = (int) houseBeanClass.getTotalPage(); currentHouseListPage = (int) houseBeanClass.getPageNo(); //更新缓存 setHouseIdList(houseBeanClass.getList()); if (searchHouseAdapter != null) { initData(); //更新UI searchHouseAdapter.setList(houseListBeanIDList); } } } }, _mActivity, ShowErrorMode.YES); } @Override public void onFailure(HDLException e) { HdlThreadLogic.runMainThread(new Runnable() { @Override public void run() { if (currentHouseListPage > 1) { --currentHouseListPage; } isHouseLoadingMore = false; if (isRefreshing) { hideLoading(); } } }, _mActivity, ShowErrorMode.YES); } }); } private void clearData() { if (houseListBeanIDList != null && houseListBeanIDList.size() > 0) { houseListBeanIDList.clear(); } } public void setHouseIdList(List<HouseIdBean> list) { if (list == null || list.size() == 0) { return; } if (this.houseListBeanIDList.size() == 0) { this.houseListBeanIDList.addAll(list); return; } for (int i = 0; i < list.size(); i++) { this.setSingleHouseId(list.get(i)); } } /** * 添加电站Id到列表里面 * * @param houseIdBean -电站Id对象 */ public void setSingleHouseId(HouseIdBean houseIdBean) { try { if (houseIdBean == null) { return; } boolean if_boolean = false; for (int i = 0; i < houseListBeanIDList.size(); i++) { if (houseListBeanIDList.get(i).getHomeId().equals(houseIdBean.getHomeId())) { //存在替换 houseListBeanIDList.remove(i); houseListBeanIDList.add(i, houseIdBean); if_boolean = true; break; } } if (!if_boolean) { //没有添加 this.houseListBeanIDList.add(houseIdBean); } } catch (Exception e) { String mes = e.getMessage(); HdlLogLogic.print("--->" + mes); } } /** * 添加历史记录 */ private void addSearchTextToList() { 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); if (SearchHistoryTitleList.size() > 10) { //历史记录不能超出10 SearchHistoryTitleList.remove(SearchHistoryTitleList.get(11)); } } /** * 获取【搜索历史记录文件】全路径 */ public String getHistoryFileNamePath() { return HdlFileLogic.getInstance().getCurrentUserRootPath() + "/house_history.txt"; } } app/src/main/res/drawable/history_del.png
app/src/main/res/drawable/search_back.png
app/src/main/res/drawable/search_bj_ff05000000.xml
File was renamed from app/src/main/res/drawable/search_bj_edeff2.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="@dimen/dp_17" /> <solid android:color="@color/text_EDEFF2" /> <solid android:color="#05000000" /> </shape> app/src/main/res/layout/activity_house_search.xml
@@ -4,6 +4,164 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/text_F5F7FA" tools:context=".ui.powerstation.HouseSearchActivity"> <!--搜索--> <RelativeLayout android:id="@+id/power_station_search_cl" android:layout_width="match_parent" android:layout_height="@dimen/dp_35" android:layout_marginTop="@dimen/dp_48" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <RelativeLayout android:id="@+id/back_rl" android:layout_width="@dimen/dp_50" android:layout_height="match_parent"> <ImageView android:id="@+id/power_station_back_iv" android:layout_width="@dimen/dp_10" android:layout_height="@dimen/dp_17" android:layout_alignParentStart="true" android:layout_centerVertical="true" android:layout_marginStart="@dimen/dp_16" android:src="@drawable/search_back" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginStart="@dimen/dp_7" android:layout_marginEnd="@dimen/dp_21" android:layout_toStartOf="@+id/power_station_search_tv" android:layout_toEndOf="@+id/back_rl" android:background="@drawable/search_bj_ff05000000"> <ImageView android:id="@+id/power_station_search_iv" android:layout_width="@dimen/dp_18" android:layout_height="@dimen/dp_18" android:layout_alignParentStart="true" android:layout_centerVertical="true" android:layout_marginStart="@dimen/dp_13" android:src="@drawable/search_path" /> <EditText android:id="@+id/power_station_search_et" android:layout_width="0dp" android:layout_height="match_parent" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:layout_marginStart="@dimen/dp_11" android:layout_marginEnd="@dimen/dp_40" android:layout_toEndOf="@+id/power_station_search_iv" android:background="@null" android:gravity="start|center_vertical" android:hint="Search the power station" android:textColor="@color/text_90000000" android:textColorHint="@color/text_40000000" android:textSize="@dimen/text_14" /> <ImageView android:id="@+id/power_station_clear_iv" android:layout_width="@dimen/dp_20" android:layout_height="@dimen/dp_20" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:layout_marginEnd="@dimen/dp_13" android:src="@drawable/clear" /> </RelativeLayout> <TextView android:id="@+id/power_station_search_tv" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:layout_marginEnd="@dimen/dp_21" android:gravity="center" android:text="@string/search" android:textColor="@color/text_90000000" android:textSize="@dimen/text_16" /> </RelativeLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/history_list_parent" android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/power_station_search_cl"> <TextView android:id="@+id/history_list_title_tv" android:layout_width="wrap_content" android:layout_height="@dimen/dp_23" android:layout_marginStart="@dimen/dp_16" android:layout_marginTop="@dimen/dp_23" android:layout_marginEnd="@dimen/dp_21" android:text="@string/history_search" android:textColor="@color/text_90000000" android:textSize="@dimen/text_16" android:textStyle="bold" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ImageView android:id="@+id/power_station_del_iv" android:layout_width="@dimen/dp_26" android:layout_height="@dimen/dp_26" android:layout_marginTop="@dimen/dp_21" android:layout_marginEnd="@dimen/dp_16" android:src="@drawable/history_del" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" /> <androidx.recyclerview.widget.RecyclerView android:id="@+id/history_list_rcv" android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginTop="67dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/list_parent" android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginTop="@dimen/dp_30" android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/power_station_search_cl"> <androidx.swiperefreshlayout.widget.SwipeRefreshLayout android:id="@+id/list_srl" android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/list_rcv" android:layout_width="match_parent" android:layout_height="match_parent" /> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout> app/src/main/res/layout/fragment_house_list.xml
@@ -91,11 +91,12 @@ app:layout_constraintTop_toTopOf="parent"> <RelativeLayout android:id="@+id/power_station_search_click_cl" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginEnd="@dimen/dp_17" android:layout_toStartOf="@+id/power_station_default_condition_iv" android:background="@drawable/search_bj_edeff2"> android:background="@drawable/search_bj_ff05000000"> <ImageView android:id="@+id/power_station_search_iv" @@ -443,7 +444,7 @@ android:layout_height="@dimen/dp_35" android:layout_marginStart="@dimen/dp_13" android:layout_marginEnd="@dimen/dp_16" android:background="@drawable/search_bj_edeff2" android:background="@drawable/search_bj_ff05000000" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> app/src/main/res/layout/item_history_title.xml
New file @@ -0,0 +1,19 @@ <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="@dimen/dp_51"> <TextView android:id="@+id/history_title_tv" android:layout_width="wrap_content" android:layout_height="@dimen/dp_23" android:layout_marginStart="@dimen/dp_16" android:ellipsize="end" android:singleLine="true" android:textColor="@color/text_90000000" android:textSize="@dimen/text_16" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> app/src/main/res/layout/item_search_house.xml
New file @@ -0,0 +1,39 @@ <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="@dimen/dp_75"> <ImageView android:id="@+id/power_station_search_iv" android:layout_width="@dimen/dp_18" android:layout_height="@dimen/dp_18" android:layout_marginStart="@dimen/dp_16" android:src="@drawable/search_path" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/power_station_name_tv" android:layout_width="wrap_content" android:layout_height="@dimen/dp_23" android:layout_marginStart="@dimen/dp_23" android:ellipsize="end" android:singleLine="true" android:textColor="@color/text_90000000" android:textSize="@dimen/text_16" app:layout_constraintStart_toEndOf="@+id/power_station_search_iv" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/power_station_location_tv" android:layout_width="wrap_content" android:layout_height="@dimen/dp_17" android:layout_marginTop="@dimen/dp_7" android:textColor="@color/text_40000000" android:textSize="@dimen/text_12" app:layout_constraintStart_toStartOf="@+id/power_station_name_tv" app:layout_constraintTop_toBottomOf="@+id/power_station_name_tv" /> </androidx.constraintlayout.widget.ConstraintLayout> app/src/main/res/values/strings.xml
@@ -276,6 +276,9 @@ <string name="installed_capacity">装机容量</string> <string name="generation">发电量</string> <string name="station_name">电站名称</string> <string name="search">搜索</string> <string name="history_search">历史搜索</string> <string name="search_content_null">搜索内容不能为空.</string> </resources>