I am using cursoradapter to get the values from database and to display it in listview.I am able to show the database contents in listview also onclick of perticular item I am getting value of clicked Item.Now I want checkbox also so that oncheck I should get the values of checked Items ( In this case both checkbox click and listitemclick both should work) is it possible? how to do it?
private void displayListView() {
final Cursor cursor = dbHelper.fetchAllRecords();
String[] columns = new String[] {
RecordsDbAdapter.KEY_NAME,
RecordsDbAdapter.KEY_BIRTHDAY,
};
int[] to = new int[] {
R.id.name,
R.id.birthdate,
};
dataAdapter = new SimpleCursorAdapter(
this, R.layout.rownew,
cursor,
columns,
to);
View v = getLayoutInflater().inflate(R.layout.customdialog, null);
ListView listView = (ListView) v.findViewById(R.id.listChildren);
final EditText etChild = (EditText) v.findViewById(R.id.etChild);
listView.setAdapter(dataAdapter);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
name = ((TextView) view.findViewById(R.id.name)) .getText().toString();
BirtDate = ((TextView) view.findViewById(R.id.birthdate)) .getText().toString();
Log.d("*************", name);
Info=name+ " " +BirtDate;
Log.d("nameeeeeeeeeeeeeeee",Info);
etChild.setText(new StringBuilder().append(Info));
topaste=etChild.getText().toString();
etChild.setText(new StringBuilder().append(Info1));
// topaste1=etChild.getText().toString();
// }
}
})
My rownew.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="wrap_content"
android:layout_gravity="center_horizontal"
android:background="#FFFFFF"
android:gravity="center"
android:padding="6dp" >
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text"
android:textStyle="bold" >
</TextView>
<TextView
android:id="@+id/birthdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="@string/text"
android:textStyle="bold" >
</TextView>
</LinearLayout>
My Customdialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/etChild"
android:hint=""
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
</EditText>
<ListView
android:id="@+id/listChildren"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF" >
</ListView>
</LinearLayout>
You could extend
SimpleCursorAdapterto add a click listener for your checkbox. Here is a snippet of the code I use:In your list row layout you need to set
android:focusable="false"in order to allow clicks on list items and clicks on the checkbox of each list item.Finally you need a model or data structure to store all checked items of your list, e.g. an array or list that stores identifiers for all checked items.