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

  • Formatear un entero a una fecha formateada en una instrucción SQLite select
  • Cómo utilizar rawQuery para insertar un registro
  • Problema con SQLiteOpenHelper en android 2.X y 3.X
  • Android Cursor? Cómo leer datos de objetos?
  • BeginTransaction (), endTransaction () y setTransactionSuccessful (). ¿Qué hacen exactamente?
  • Vista de lista con la opción de actualización y supresión mediante contextmenu
  • Mantener la misma base de datos SQLite al actualizar y la aplicación de Android de la versión Lite a Pro
  • Devolver datos de AsyncTask Android
  • Cómo limpiar / eliminar base de datos greenDao
  • ¿Cuál es el mejor método para almacenar esta pequeña tabla de datos de sólo lectura en un teléfono Android?
  • La base de datos Sqlite onUpgrade () no se llama
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.