Simple coursor adaptador con base de datos SQLite y custmize listview

Estoy confundido aquí donde está el error real. Quiero mostrar el registro de una base de datos de SQLite en un listview usando un adaptador simple del coursor. No hay campo como _id en mi base de datos SQLite! Pero el error es con respecto a eso, que menciono a continuación:

Error:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.blundell.tut/com.blundell.tut.ui.phone.update_page}: java.lang.IllegalArgumentException: column '_id' does not exist

Mis archivos Java se mencionan aquí …

Update_page.java

 public class update_page extends Activity { DatabaseHandler db = new DatabaseHandler(this); public String tableName = db.TABLE_CONTACTS; public String databaseName = db.DATABASE_NAME; public String task_name = db.KEY_TASK; public String dt = db.KEY_DATETIME; private ArrayList<String> results = new ArrayList<String>(); private ArrayList<String> results2 = new ArrayList<String>(); Intent op_intent; SQLiteDatabase database; ListView myview; Cursor c; String o_name,o_no1; //String o_id1 = null; HttpClient client; Integer op_id,status; String url; Context ctx; Intent myintent; final MainActivity act = new MainActivity(); public void onCreate(Bundle savedInstanceState) { ctx = this; database = act.getInstance().openOrCreateDatabase("contactsManager", SQLiteDatabase.CREATE_IF_NECESSARY, null); Toast.makeText(getApplicationContext(), "Database is open", 1500).show(); final String[] columnsone = {"id", "task_name", "date_time"}; String[] columnstwo = {"task_name", "date_time"}; int to[] = {R.id.lbl_task,R.id.lbl_datetime}; c = database.query("contacts", columnsone, null, null, null, null, null); status = c.getCount(); if (status == 0) { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ctx); // Set title alertDialogBuilder.setTitle("No task are created !!"); // Set dialog message alertDialogBuilder .setMessage("Click cancle to exit!") .setCancelable(false) .setNegativeButton( "Cancle", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // If this button is clicked, just close // the dialog box and do nothing dialog.cancel(); myintent = new Intent(update_page.this,MainActivity.class); startActivity(myintent); } }); // Create alert dialog AlertDialog alertDialog = alertDialogBuilder.create(); // Show it alertDialog.show(); } else { Toast.makeText(getApplicationContext(), "records are available in courser", 1500).show(); if (c != null) { Toast.makeText(getApplicationContext(), "in courser", 1500).show(); SimpleCursorAdapter adapter = new SimpleCursorAdapter(this.ctx,R.layout.update_listview, c, columnstwo, to); Toast.makeText(getApplicationContext(), "records are in list", 1500).show(); myview.setAdapter(adapter); } } 

Update_list.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" > <!-- <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#404040" android:fillViewport="true" > --> <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0.68" android:divider="#000000" android:dividerHeight="2dp" android:background="#404040"> </ListView> <!-- </ScrollView> --> </LinearLayout> 

Update_listview.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" > <TextView android:id="@+id/lbl_task" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:text="Medium Text" android:textColor="#1E90FF" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/lbl_datetime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="3dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="10dp" android:text="Medium Text" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout> 

Necesita tener una columna llamada _id. En su código, cambie su columna de identificación a _id. Consulte Acerca del campo "_id" en Android SQLite para una publicación similar. Consulte también las " consideraciones de diseño de datos " en la documentación de Android

  • Cursor while loop devuelve cada valor pero el último
  • Inspeccionar la base de datos android de sql desde Eclipse
  • Android: ¿necesitamos cerrar Db después de cerrar el cursor
  • ¿Cómo portar un MS Access existente a SQLite para su uso con el desarrollo de aplicaciones para Android?
  • Cómo construir una consulta SQLite a GROUP by ORDER?
  • Base de datos Sqlite que actualiza una fila Android
  • GetWritableDatabase () VS getReadableDatabase ()
  • ¿Cómo obtener ID de contacto, correo electrónico, número de teléfono en una consulta SQLite? Optimización para Android de los contactos
  • ¿Cómo actualizo mi ListView después de los cambios en la base de datos?
  • Cómo consultar una tabla FTS4 de contenido externo pero devolver columnas adicionales de la tabla de contenido original
  • Android Guardar objeto como blob en sqlite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.