android - 如果 Prev Data 与 Listview 中的当前数据相同,则隐藏 textview
问题描述
我在我的自定义列表视图中显示数据下面有一个代码
final List<Map<String, String>> data1 = new ArrayList<Map<String, String>>();
while (data.moveToNext()) {
Map<String, String> datum = new HashMap<String, String>(5);
datum.put("Name", data.getString(0));
datum.put("Remarks", data.getString(2));
datum.put("Date", data.getString(3));
datum.put("Others", data.getString(4));
data1.add(datum);
}
adapter = new SimpleAdapter(getActivity(), data1,
R.layout.listview_plan,
new String[]{"Name", "Remarks", "Date", "Others"},
new int[]{R.id.list_name,
R.id.list_remarks,
R.id.list_date, R.id.list_others}){
@Override
public View getView (int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
return v;
}
};
listView.setAdapter(adapter);
我调用了 textview R.id.list_date
,它显示日期值,我的数据按日期排序。R.id.list_date
我的问题是,如果 prev 中的数据与当前数据相同,我该如何隐藏
解决方案
尝试这个:
adapter = new SimpleAdapter(getActivity(), data1,
R.layout.listview_plan,
new String[]{"Name", "Remarks", "Date", "Others"},
new int[]{R.id.list_name,
R.id.list_remarks,
R.id.list_date, R.id.list_others}){
String previousDate = "";
@Override
public View getView (int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
TextView tvDate = v.findViewById(R.id.list_date);
String currentDate = ((Map<String, String>)getItem(position)).get("Date");
if (currentDate != null){
if (currentDate.equals(previousDate)) tvDate.setVisibility(View.INVISIBLE);
else tvDate.setVisibility(View.VISIBLE);
previousDate = currentDate;
}
return v;
}
};
希望有帮助!
推荐阅读
- python-3.x - 循环遍历 pandas DataFrame
- android-studio-3.0 - 无法迁移到 AndroidX:com.android.builder.internal.aapt.v2.Aapt2Exception: Android 资源编译失败
- reactjs - ChartJS 区分图表区域、数据集和图例之间的点击
- r - R中的用户定义函数不起作用
- javascript - 垂直导航栏 - Onclick 功能不起作用
- python-3.x - sqlite python中的条件内连接
- mysql - 如何将一行从一个mysql表复制到另一个
- python - 在没有 tf-idf 预处理的情况下对文本数据进行 K-means 聚类
- php - 我应该如何处理 yii2 中的错误数组到字符串的转换?
- python - 如何在现有数据框中创建具有独立行值的列