listview con casilla de verificación
Quiero mostrar una vista de lista con la casilla de verificación como
checkbox listitem1
checkbox listitem2
checkbox listitem3
.
.
.
.
Si hace clic en cualquier elemento de lista en la vista de lista, la casilla de verificación correspondiente marcada será verdadera. Intenté debajo del código
<?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>
El archivo de clase es
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]);
}
pero en esto, OnClickItemClickListener en la vista de lista no funciona. La casilla de verificación marcable es verdadera cuando hago clic en la casilla de verificación no en listitem en listview. Entonces, dígame cómo mostrar la vista de lista con la casilla de verificación y también la casilla de verificación listitem checkable es verdadera cuando hago clic en el elemento de lista.
Atentamente
Gracias por adelantad