我想在listview中设置单选复选框。 在此列表视图中,每行包含2个textview,一个按钮和一个复选框。 textview数据从sqlite数据库中检索,因此,当我选中复选框时,将取消选中另一个复选框,并仅选中列表视图中的复选框。 谢谢大家
答案 0 :(得分:0)
您可以使用可检查的布局。
在您的xml类中插入可检查的布局,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<com.example.xxx.widget.CheckableLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="10dp" >
//Your checkbox and textview here
</com.example.xxx.widget.CheckableLinearLayout>
在你的onItemClick中插入此代码
if (itemcheck.isChecked()) {
itemcheck.setChecked(true);
} else {
itemcheck.setChecked(false);
}
itemcheck.setChecked(true);
答案 1 :(得分:-1)
holder.checkbox.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {
if (position != selected && mSelectedRB != null)
{
mSelectedRB.setChecked(false);
}
selected = position;
mSelectedRB = (CheckBox) view;
//database.deleteAllRecords();
//database.insertRecord(rowItems.get(position).getLanguageID(), rowItems.get(position).getLanguage(), rowItems.get(position).getImageUrl());
}
});
if(selected != position)
{
holder.checkbox.setChecked(false);
}
else
{
holder.checkbox.setChecked(true);
if(holder.checkbox != null && holder.checkbox != mSelectedRB)
{
mSelectedRB = holder.checkbox;
}
}
//context.startActivity(new Intent(context, LanguageActivity.class));
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
LanguageDetails rowItem = (LanguageDetails) getItem(position);
holder.checkbox.setText(rowItem.getLanguage());
return convertView;
}`