【问题标题】:Get all checked items from ListView从 ListView 中获取所有选中的项目
【发布时间】:2015-11-18 07:23:10
【问题描述】:

如果我有一个ListView,其布局如下,每个项目都有一个复选框,当我单击Button 时,如何在onClick() 方法中获取所有选中的项目?

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <ListView
            android:id="@+id/listview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            />

    </LinearLayout>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Submit"
        android:onClick="submitList"
        />

</RelativeLayout>

onClick() 方法:

public void submitList(View view) {
    //
}

【问题讨论】:

标签: android android-layout android-intent android-activity android-xml


【解决方案1】:

你可以一一查看listview项目:

for ( int i=0; i < listview.getAdapter().getCount(); i++) {
listview.setItemChecked(i, true);
}

【讨论】:

    【解决方案2】:

    如果您使用ListView.CHOICE_MODE_MULTIPLE,您可以使用SparseBooleanArray 来获取选中的项目。 这里是 StackoverFlow 的参考question

    【讨论】:

      【解决方案3】:

      您必须创建一个与您的列表视图适配器大小相同的数组列表。之后,当您检查任何列表项时,将该项目添加到您的数组列表中。

      public ArrayList<String> getCheckedName()
          {
              return array_list;
          }
      

      在您的适配器类中编写此函数。当你想要你的检查数据调用时

      ArrayList<String> sName=adapter.getCheckedName();
      

      在你的 onClick 方法中使用这个 sName。

      【讨论】:

        【解决方案4】:
        int len = listview.getCount();
        SparseBooleanArray checked = listview.getCheckedItemPositions();
        for (int i = 0; i < len; i++) {
            if (checked.get(i))
                String item = yourArrayList.get(i);
        }
        

        【讨论】:

          猜你喜欢
          • 2011-06-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-02-15
          • 1970-01-01
          相关资源
          最近更新 更多