2

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

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

我已经做好了 :

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

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

这段代码有什么问题?

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

4

1 回答 1

10

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

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

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

于 2013-06-27T06:10:35.307 回答