我想显示一个带有复选框的 ListView
checkbox listitem1
checkbox listitem2
checkbox listitem3
.
.
.
.
如果单击 ListView 中的任何列表项,则选中的相应复选框将为真。我试过下面的代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<CheckBox android:text=""
android:id="@+id/list_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
></CheckBox>
<TextView
android:id="@+id/songname"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginTop="10px"
android:layout_marginLeft="60px"/>
<TextView
android:id="@+id/artist"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginTop="30px"
android:layout_marginLeft="60px"/>
</RelativeLayout>
类文件是
list.setOnItemClickListener(this);
list.setAdapter(new EfficientAdapter(this));
private static class EfficientAdapter extends BaseAdapter
{
private LayoutInflater mInflater;
public EfficientAdapter(Context context)
{
mInflater = LayoutInflater.from(context);
}
public int getCount()
{
return title.length;
}
public Object getItem(int position)
{
return position;
}
public long getItemId(int position)
{
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
if (convertView == null)
{
convertView = mInflater.inflate(R.layout.selectsongs, null);
holder = new ViewHolder();
holder.title = (TextView) convertView.findViewById(R.id.songname);
holder.artist = (TextView) convertView.findViewById(R.id.artist);
holder.check = (CheckBox) convertView.findViewById(R.id.list_checkbox);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.title.setText(title[position]);
holder.artist.setText(artist[position]);
return convertView;
}
static class ViewHolder
{
TextView title,artist;
CheckBox check;
}
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
// TODO Auto-generated method stub
Log.e("name",title[position]);
}
但在此 ListView 上的 OnClickItemClickListener 不起作用。当我单击 ListView 中不在列表项上的复选框时,复选框可检查为真。所以请告诉我如何显示带有复选框的 ListView 以及当我单击列表项时列表项复选框是否为真。
最好的问候。
提前致谢
最佳答案
最好使用 ChechBoxPreference 完成列表.
使用偏好的主要优点是您无需编写代码来保存值,您可以轻松地在任何 Activity 中获取值。该值作为 key 对值存储在 android 首选项中。您可以使用“KeyName”引用该值。
以下链接将帮助您对此有所了解:
关于android - 带复选框的 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5376082/