Java 向ListAdapter中的选定项添加勾号
我在ListAdapter中有名称列表,我显示图标和图标的名称Java 向ListAdapter中的选定项添加勾号,java,android,Java,Android,我在ListAdapter中有名称列表,我显示图标和图标的名称 @Override public View getView(int position, View convertView, ViewGroup parent) { View view; if (convertView == null) { view = mInflater.inflate(R.layout.list_item_icon_text, parent, false); } else
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
if (convertView == null) {
view = mInflater.inflate(R.layout.list_item_icon_text, parent, false);
} else {
view = convertView;
}
AppModel item = getItem(position);
ImageView myicon = (ImageView) view.findViewById(R.id.iconList);
myicon.setImageDrawable(item.getIcon());
((TextView)view.findViewById(R.id.textList)).setText(item.getLabel());
}
return view;
}
现在,我想单击名称并查看右侧的勾号,以表明它已被选中,再次选中时,勾号应不可见。到目前为止,我尝试将勾号图标设置为ImageView失败,因为有时我单击A时,H也会有勾号。由于
convertView
,您所说的问题是正常的。要解决此问题,您可以这样做:
boolean selected
属性添加到AppModel
public class AppModel {
//....
//your own attributes
private boolean selected;
public boolean isSelected() {
return selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
}
}勾选ImageView
添加到布局中。充气项目视图时使用布尔值
选择
以控制是否显示勾号
AppModel item = getItem(position);
ImageView tick = (ImageView) view.findViewById(R.id.tick);
tick.setVisibility(item.isSelected()?View.VISIBLE:View.GONE);
OnClickListener
添加到视图中:
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
item.setSelected(!item.isSelected());
notifyDataSetChanged();
}
});