Android的ListView中有一个复选框 [英] Android ListView with a checkbox

查看:152
本文介绍了Android的ListView中有一个复选框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我现在已经花了整整一天试图让自定义行加载。似乎有很多这方面的例子在计算器上,并就如何复选框一个Android ListView控件中绑定到数据行等地,但他们都似乎是不完整的。

I've now spent a full day on trying to get a custom row to load. There seem to be plenty of examples here on StackOverflow and other places on how to bind a checkbox to a row of data within an Android listview, but they all seem to be incomplete.

下面是我有(row.xml):

Here's what I have (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>

在code,我有一个SimpleCursorAdapter,填充的ListView。

In code, I have a SimpleCursorAdapter, populating the 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);

过去这一点,我真的不知道该怎么做。如果有人能在一个很好的例子指向我,那将是巨大的。我们的目标是真正能够切换的复选框。

Past this, I'm not really sure what to do. If someone could point me at a good example, that would be great. The goal is to actually be able to toggle the checkboxes.

在此先感谢!
亚历克斯

Thanks in advance! Alex

推荐答案

亚历克斯,

下一步是实现<一href=\"http://developer.android.com/reference/android/widget/SimpleCursorAdapter.ViewBinder.html#setViewValue%28android.view.View,%20android.database.Cursor,%20int%29\"相对=nofollow> 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;
        }
    }
);

这可以从网络,等等。

这篇关于Android的ListView中有一个复选框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆