【问题标题】:get checked items from listview in android从android中的listview获取检查项目
【发布时间】:2013-07-24 20:22:39
【问题描述】:

我有一个动态列表视图,每行一个文本和一个复选框。当我单击一个按钮时。我需要将所有选中的项目名称和未选中的项目名称分别作为 arraylilst 获取。我该怎么做。示例要好得多..

我用过..

    SparseBooleanArray checked = mainlw.getCheckedItemPositions();

    for (int i = 0; i < checked.size(); i++) {

        if(checked.valueAt(i) == true) {
            Planet tag = (Planet) mainlw.getItemAtPosition(checked.keyAt(i));

            String selectedName=tag.getName();
            Toast.makeText(getApplicationContext(), selectedName, Toast.LENGTH_SHORT).show();
        }
    }

【问题讨论】:

    标签: android


    【解决方案1】:

    试试这个并根据你的要求实现这个逻辑。

    int cntChoice = myList.getCount();
    
    String checked = "";
    
    String unchecked = "";
    SparseBooleanArray sparseBooleanArray = myList.getCheckedItemPositions();
    
    for(int i = 0; i < cntChoice; i++)
    {
    
         if(sparseBooleanArray.get(i) == true) 
         {
             checked += myList.getItemAtPosition(i).toString() + "\n";
         }
         else  if(sparseBooleanArray.get(i) == false) 
         {
             unchecked+= myList.getItemAtPosition(i).toString() + "\n";
         }
    
     }
    

    【讨论】:

    • 谁能告诉我 :check" 是如何在列表中的,通过长按或任何其他方式?谢谢
    【解决方案2】:

    在您的 ListView 中使用 CHOICE_MODE_MULTIPLE 并使用 getCheckedItemPositions() 获取选中的。

    【讨论】:

    • 它工作正常。它正在获取选定的名称。但是我怎么能得到未经检查的名称呢?
    • 如果您想要选中和未选中项目的名称,只需使用getCount()getItemAtPosition(int position)。您可以遍历这些项目并将它们添加到您的 ArrayList 中。见getCountgetItemAtPosition
    【解决方案3】:

    所以点击按钮你可以做到这一点,从这里你会得到检查的项目:-

    @Override
    public void onClick(View v) 
    {
            System.out.println("check"+getListView().getCheckItemIds().length);
    
            for (int i = 0; i < getListView().getCheckItemIds().length; i++)
            {
                System.out.println(getListView().getAdapter().getItem((int)getListView().getCheckItemIds()[i]).toString());                 
            }   
    
    }
    

    【讨论】:

    • 我用过.. SparseBooleanArray checked = mainlw.getCheckedItemPositions(); for (int i = 0; i
    • 从中我可以很好地获得已检查的项目。但是我怎么能单独获得未检查的项目
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多