我使用listview显示三个textview(这些文本视图的值来自数据库)和一个复选框。我希望在用户单击复选框时存储复选框状态,并在它们返回时显示它。但是,我是Android开发的新手,我不知道该怎么做。我已经尝试在列表视图中添加复选框,但onitemclick已禁用。下面是代码,
这是从listview中的数据库和列表中检索值的游标,
Cursor yearcursor = db.paymentall(this);
String[] yearfrom = new String[]
{ PaymentAppDataBase.REQUESTEDDATE,PaymentAppDataBase.PAYMENTNAME,PaymentAppDataBase.AMOUNT };
int[] yearto = new int[] { R.id.Date,R.id.Name,R.id.Amount };
SimpleCursorAdapter yearadapter =
new SimpleCursorAdapter(this, R.layout.listview, yearcursor, yearfrom, yearto);
setListAdapter(yearadapter);
amount.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Cursor cursor = (Cursor) parent.getItemAtPosition(position);
String toaddressreview = cursor.getString(4);
String subjectreview = cursor.getString(5);
String emailbodyreview = cursor.getString(6);
Intent todayreview = new Intent(ReviewPayment.this,ReviewandResend.class);
todayreview.putExtra("toadd", toaddressreview);
todayreview.putExtra("subjectreveiew", subjectreview);
todayreview.putExtra("emailbody", emailbodyreview);
startActivity(todayreview);
}
});
Mt xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:paddingTop="4dip"
android:paddingBottom="6dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView android:id="@+id/Date"
android:layout_width="100dip"
android:layout_height="wrap_content"
android:textSize="14sp"/>
<TextView android:id="@+id/Name"
android:layout_width="120dip"
android:layout_height="wrap_content"
android:layout_weight="2"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:layout_toRightOf="@+id/Date"/>
<TextView android:id="@+id/Amount"
android:layout_width="50dip"
android:layout_height="20dip"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:layout_weight="2"
android:layout_toRightOf="@+id/Name"/>
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="50dip"
android:layout_alignBottom="@+id/Amount"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/Amount" />
</RelativeLayout>
如果我得到两个问题的答案,那就太好了,
1。如何保存复选框的状态?
2. 如何在使用复选框时启用onitemclicklistener?
提前致谢
答案 0 :(得分:0)
没有简单的方法可以保持布尔数组等于列表项的数量并存储状态。您需要将此变量作为从SimpleCursorAdapter派生的自定义适配器的成员变量。
同样,它需要成为自定义适配器的一部分。在适配器的getView()函数中,您需要为复选框实现onCheckedChangeListener()[不记得现在的确切名称],并在您拥有listview的主Activity中,将onItemClickListener()设置为列表视图。
如果这没有意义,只需在stackoverflow中进行一些操作即可。这个问题已经多次处理过了。