gpt4 book ai didi

带复选框的 Android ListView

转载 作者:行者123 更新时间:2023-11-30 04:34:47 24 4
gpt4 key购买 nike

我现在花了一整天的时间来尝试加载自定义行。 StackOverflow 和其他地方似乎有很多关于如何将复选框绑定(bind)到 Android ListView 中的一行数据的示例,但它们似乎都不完整。

这是我所拥有的 (row.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="40dip"
android:orientation="horizontal" android:background="@drawable/row_bk"
android:layout_gravity="center_vertical">

<TextView android:id="@+id/ItemID"
android:layout_weight="0" android:visibility="gone"
android:layout_width="0dp" android:gravity="center"
android:layout_height="wrap_content" />

<TextView android:id="@+id/Title"
android:layout_width="0dp" android:textColor="#666"
android:layout_weight="1" android:layout_height="40dip"
android:padding="5dp" android:gravity="center_vertical"
android:textSize="17dip" />

<CheckBox android:id="@+id/chkCheck" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:focusable="false" android:focusableInTouchMode="false" android:clickable="true"></CheckBox>

</LinearLayout>

在代码中,我有一个 SimpleCursorAdapter,用于填充 ListView。

    Cursor oLoop = db
.rawQuery(
"select _id, title, is_checked from tbl",null);

startManagingCursor(oLoop);

String[] from = new String[] { "_id", "title", "is_checked" };

int[] to = new int[] { R.id.ItemID, R.id.Title, R.id.chkCheck };

SimpleCursorAdapter oList =
new SimpleCursorAdapter (this, R.layout.task_item_row, oLoop, from,
to);

setListAdapter(oList);

过了这个,我真的不知道该怎么办。如果有人能给我指出一个很好的例子,那就太好了。目标是实际能够切换复选框。

提前致谢!亚历克斯

最佳答案

亚历克斯,

下一步是实现ViewBinder.setViewValue()

它看起来像这样:

getViewAdapter().setViewBinder(
new ViewBinder(){
public boolean setViewAdapter(View view, Cursor cursor, int columnIndex){
<JavaType> object = cursor.get<JavaType>(columnIndex);

boolean isHandled = false;
if(view.getId() == R.id.checkBox){
CheckBox cb = (CheckBox) view;
cb.setChecked(isObjectChecked(object));
// object depends on your underlying data type
// in the data base, use the debugger to find the actually implemented type.
isHandled = true;
}

return isHandled;
}
}
);

这可能是一个非常强大的方法,具有条件可见 View 和从网络加载 Uri 等。

关于带复选框的 Android ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7060123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com