【发布时间】:2015-10-02 03:48:48
【问题描述】:
单击时,我使用list.setItemChecked(position, true) 将项目设置为在我的ListView 中选中。但是,我找不到查看列表项是否已检查的方法。
ListView 项目没有复选框/单选并且不使用CheckedTextView。 ListView 设置为 CHOICE_MODE_SINGLE。
ListView onItemClick 监听器
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
list.setItemChecked(position, true);
}
适配器getView
@Override
public View getView(int position, View convertView, ViewGroup parent) {
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflater.inflate(R.layout.rowlayout, parent, false);
vg = parent;
TextView textView = (TextView) rowView.findViewById(R.id.label);
textView.setText(names[position]);
TextView textView2 = (TextView) rowView.findViewById(R.id.tvValue);
textView2.setText(stock[position]);
return rowView;
}
有没有办法检查列表项是否被选中?例如,在 onItemClick 侦听器中执行以下操作:
if(position.isChecked()) {
//do something
}
如果没有在布局中添加复选框/收音机并进行更改,我似乎无法提出任何建议。感谢您的任何建议,谢谢!
编辑:
标题有点混乱,所以澄清一下:问题不在于该项目没有被明确选择/取消选择,而是我需要处理第二次点击一个被选中的项目。我正在使用简单的 if/else 逻辑来处理这个问题,这有效但会在项目的其他地方引起问题,这就是为什么我想知道是否有一些内置功能可以检查项目是否被选中。
【问题讨论】:
-
为什么不改变被点击的背景颜色?
-
@wyoskibum 是的,我正在这样做。问题不在于该项目没有明确选择/未选择,而是我需要处理对已选择项目的第二次点击。我正在使用简单的 if/else 逻辑来处理这个问题,这很有效,但会在项目的其他地方引起问题,这就是为什么我想知道是否有一些内置功能可以检查项目是否被选中。
标签: android android-listview android-listfragment