I've found a sample about populating a listView from a database in android,it works well,but I want to add some functionality to this application,I want to put a checkbox next to each item in my listview and when the user checks each item he will be able to delete that item by pressing a Confirm button.I've put these lines to make the multiple choice enabled,but the checkbox does not appear and I don't know how to delete the selected Item !
ListView lstView = getListView(); lstView.setChoiceMode(2); public void onListItemClick( ListView parent, View v, int position, long id) { //---toggle the check displayed next to the item--- parent.setItemChecked(position, parent.isItemChecked(position)); }
Would you please help me solve my issue?
Here is my Code:
package com.saigmn; import java.util.ArrayList; import android.app.ListActivity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; public class DataListView extends ListActivity { private ArrayList<String> results = new ArrayList<String>(); private String tableName = DBHelper.tableName; private SQLiteDatabase newDB; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); openAndQueryDatabase(); displayResultList(); } private void displayResultList() { TextView tView = new TextView(this); tView.setText("This data is retrieved from the database and only 4 " + "of the results are displayed"); getListView().addHeaderView(tView); setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results)); getListView().setTextFilterEnabled(true); ////---------------------- ListView lstView = getListView(); //lstView.setChoiceMode(0); //CHOICE_MODE_NONE //lstView.setChoiceMode(1); //CHOICE_MODE_SINGLE lstView.setChoiceMode(2); // setListAdapter(new ArrayAdapter<String>(this, // android.R.layout.activity_list_item)); } //-------------------------------- public void onListItemClick( ListView parent, View v, int position, long id) { //---toggle the check displayed next to the item--- parent.setItemChecked(position, parent.isItemChecked(position)); } private void openAndQueryDatabase() { try { DBHelper dbHelper = new DBHelper(this.getApplicationContext()); newDB = dbHelper.getWritableDatabase(); Cursor c = newDB.rawQuery("SELECT FirstName, Age FROM " + tableName + " where Age > 10 LIMIT 4", null); if (c != null ) { if (c.moveToFirst()) { do { String firstName = c.getString(c.getColumnIndex("FirstName")); int age = c.getInt(c.getColumnIndex("Age")); results.add("Name: " + firstName + ",Age: " + age); }while (c.moveToNext()); } } } catch (SQLiteException se ) { Log.e(getClass().getSimpleName(), "Could not create or Open the database"); } finally { if (newDB != null) newDB.execSQL("DELETE FROM " + tableName); newDB.close(); } } }
And here is the Link Of Example