【发布时间】:2019-05-21 11:02:06
【问题描述】:
我有一个 ListView 和一个自定义 ArrayAdapter。问题是我无法在某些选择的元素中隐藏 (setVisibility(View.GONE)) TextView。这是我的代码的最小化可读摘要部分:
public class ListViewAdapter extends ArrayAdapter<ItemModel> {
private int listItemLayout;
static class ViewHolder {
private TextView description;
}
public ListViewAdapter(Context context, int layoutId, List<ItemModel> itemList) {
super(context, layoutId, itemList);
this.listItemLayout = layoutId;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ItemModel item = getItem(position);
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = LayoutInflater.from(getContext()).inflate(listItemLayout, parent, false);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.description = convertView.findViewById(R.id.text_desription);
viewHolder.description.setText(item.getDescription());
if (TextUtils.isEmpty(item.getDescription())) {
viewHolder.description.setVisibility(View.GONE);
}
return convertView;
}
}
我在这里做错了什么?如果 String 的内容为空,如何在 ListView 中隐藏项目内的视图?
【问题讨论】:
-
也许描述永远不会为空?
-
您是否尝试将可见性代码放在 if 条件之外,如果条件不起作用,请先尝试将其放在外面,然后我建议您将该代码放在 runonui 线程中
-
您是否在调试模式下检查了“TextUtils.isEmpty(item.getDescription())”?也许你可以改变你的方法。您可以通过 (item.getDescription().equals("")) 来查看描述。
标签: java android listview android-listview android-arrayadapter