如果我的ListView
具有下面的布局,其中每个项目都有一个复选框,那么当我点击onClick()
时,如何通过Button
方法获取所有选中的项目?< / p>
<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) {
//
}
答案 0 :(得分:1)
您可以逐个检查列表视图项目:
for ( int i=0; i < listview.getAdapter().getCount(); i++) {
listview.setItemChecked(i, true);
}
答案 1 :(得分:0)
如果您使用的是SparseBooleanArray
,则可以使用ListView.CHOICE_MODE_MULTIPLE
来获取已检查的项目。
以下是StackoverFlow question的参考。
答案 2 :(得分:0)
你必须制作一个与listview适配器大小相同的arraylist。之后,当您检查任何列表项时,在数组列表中添加该项。
public ArrayList<String> getCheckedName()
{
return array_list;
}
在适配器类中编写此函数。当您需要检查数据时
ArrayList<String> sName=adapter.getCheckedName();
在onClick方法中使用此sName。
答案 3 :(得分:0)
int len = listview.getCount();
SparseBooleanArray checked = listview.getCheckedItemPositions();
for (int i = 0; i < len; i++) {
if (checked.get(i))
String item = yourArrayList.get(i);
}