【问题标题】:How to programmatically select a list item?如何以编程方式选择列表项?
【发布时间】:2015-08-06 11:39:42
【问题描述】:

我想创建一个类似于 Gmail 客户端设置->常规设置->自动高级中的对话框(无法附加图片,但它是一个简单的单选按钮选择器,包含 3 个项目)。我似乎找不到任何方法来从代码中设置所选项目,也无法检索当前所选项目的索引;它总是返回-1。手动选择工作正常。我尝试使用

listView.setSelection(position);

将其包装到 Runnable 中也无济于事。有什么想法吗?

【问题讨论】:

  • @JaiSoni。谢谢,这也是我构建对话框的方式。 (~~虽然他们没有从代码中设置选项~~从头开始,他们做了,它在 setSingleChoiceItems 中,我没有注意到)并假设使用局部变量来存储选择结果,这是我想避免的,因为它显然已经存在。 listItem.getCheckedItemPosition() 是检索它的方法。

标签: android


【解决方案1】:

我遇到了同样的问题..在我的情况下,我将第一个列表视图值设置为空白,我从列表的第二个元素中做了所有你做的事情..

new String[]{//this is my list view

                    getString(R.string.blank),
                    getString(R.string.Trans_Detail),
                    getString(R.string.Trans_Summary),
                    getString(R.string.Logout),
            }));

点击监听器:

 public void onNavigationDrawerItemSelected(int position) {
    // update the main content by replacing fragments
    Intent intent;
    switch (position) {

        case 0:
            break;
        case 1:

            break;
        case 2:
            intent = new Intent(TransDetail.this, TransSummary.class);
            startActivity(intent);
            break;
        case 3:
            intent = new Intent(TransDetail.this, LogOut.class);
            startActivity(intent);
            break;
    }

通过这样做,我跳过了自动返回 -1 这不是确切的代码..但是您可以对您的代码有所了解

【讨论】:

    【解决方案2】:

    好的,应该一直在使用

    listView.setItemChecked(position, boolean)
    

    和

    listView.getCheckedItemPosition()
    

    改为。

    【讨论】:

      猜你喜欢
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-16
      • 2013-11-01
      相关资源
      最近更新 更多