android - 如何检查 ListView 项是否被选中

标签 android android-listview android-listfragment

我正在使用 list.setItemChecked(position, true) 将项目设置为在我的 ListView 中单击时选中。但是,我没有找到查看列表项是否已选中的方法。

ListView 项没有复选框/单选框,也不使用 CheckedTextViewListView 设置为 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 逻辑来处理这个问题,它有效但会在项目的其他地方引起问题,这就是为什么我想知道是否有一些内置功能来检查一个项目是否被选中。

最佳答案

您可以使用 list.isItemChecked(position)。查看docs

关于android - 如何检查 ListView 项是否被选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31390847/

相关文章:

android - 显示/隐藏 ListView

android - 如何通过单击一个简单的按钮在 android 中显示日历

android - 服务和 Activity 之间通信的最佳方式是什么?

android - 拥有行 uri 后从内容提供者获取数据的正确方法是什么?

android - 如何将多个选定项目从 ListView 移动到另一个 ListView

android - ListFragment onCreate()显示不正确,onResume()后显示正常

android - 如何滚动到 ListFragment 的顶部

android - 为什么 ListFragment 在没有 ListView 标签的情况下工作?

android - 葫芦测试设置,ANDROID_HOME 路径

android - 适用于 Android 的预编译 FFmpeg 与使用 Android NDK 构建 FFmpeg