我正在使用具有复选框的自定义列表视图。我想知道复选框是否已选中。所以我用getCheckedItemPositions()来获取checked_info。如果我设置“android:clickable =”true“”,则复选框不会返回结果。但是,如果我设置“android:clickable =”false“”,视图中没有任何变化,但复选框返回其检查信息。有什么问题?底部代码是我使用getCheckedItemPostions()和自定义listiview的XML代码的方法。
public void deleteButton(View v)
{
int i,count;
count = mMyAdapter.mItems.size();
SparseBooleanArray checked = mListView.getCheckedItemPositions();
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/checkBox1"
android:visibility="gone"
android:focusable="false"
android:clickable="false"
android:checkable="true"
android:layout_weight="1" />
<LinearLayout
android:layout_weight="4"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:layout_weight="1"
android:id="@+id/name"
android:layout_width="15dp"
android:layout_height="match_parent"
android:textSize="10pt"
android:text="name.." />
<TextView
android:layout_weight="1"
android:id="@+id/time"
android:layout_width="15dp"
android:layout_height="match_parent"
android:textSize="12pt"
android:text="name.." />
</LinearLayout>
<ToggleButton
android:layout_weight="1"
android:layout_gravity="right"
android:id="@+id/toggleButton3"
android:layout_width="6dp"
android:layout_height="match_parent"
android:text="Toggle"
android:textOff="Off"
android:textOn="On" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:0)
参考此&#34; https://www.tutorialspoint.com/android/android_checkbox_control.htm&#34;检查一次。如果你没有得到答案通知。
答案 1 :(得分:0)
你需要实现setOnCheckedChangeListener,因为设置clickable false会在点击之后停止执行周期,之后你无法获得更新值,所以使它成为true但是通过创建一个布尔值来实现setOnCheckedChangeListener来保存你的复选框状态每个复选框的变量。然后它会工作。
按照本教程实现onCheckedChangeListener: