android - ListView setSelection 不适用于选择简单列表

标签 android android-listview

我正在对话框中制作一个选择列表。

我已经完成了所有基本功能,比如添加了一个 setonitemclicklistener,但我想要的是默认设置列表的第一项,但是当我使用 setSelection(1) 时它不起作用:

我已经完成了:

    private void resetPosition(final ListView lv) {
    lv.post(new Runnable() {
        @Override
        public void run() {
            lv.setSelection(1);
        }
    });
   }

我在单击按钮时调用此函数,这将启动此对话框,

这段代码有什么问题?

setSelection() 的文档显示一行“如果在触摸模式下,将不会选择该项目,但它仍会适当定位”这是错误吗?

最佳答案

如果您需要选择项目,您应该允许检查列表项目。您需要使用 ListView.setChoiceMode(CHOICE_MODE_SINGLE) 将 ListView 的选择模式设置为 CHOICE_MODE_SINGLE

然后您需要使用 ListView.setItemChecked(int position, boolean checked) 方法作为 ListView.setItemChecked(0, true) 将第一个位置设置为选中。

另见:http://www.vogella.com/articles/AndroidListView/article.html#listviewselection

关于android - ListView setSelection 不适用于选择简单列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17335626/

相关文章:

android - ActionBar 应该在 Fragments 上还是在 Activity 上处理?

android - 如何在自定义适配器类中发送服务器请求后更改 Listview 按钮名称?

java - Android setOnClickListener 不工作

Android: AlarmManager on BroadcastReceiver 的生命周期

java - 使改造省略未设置的查询参数

android - 在最佳服务中保持 pubnub 订阅处于打开状态

android - 自定义日期选择器

android - 在 Android 中为 ListView 之外的单元格设置动画

java - 看不到 DialogFragment 中长 ListView 底部的按钮

android - 显示数据库中数据的最佳方式