quando lancio l'activity ho questo errore:
sembra che non trova il il campo "_ID " in realtà il campo non esiste nella tabella perchè il campo si chiama "_IDPC"codice:08-02 17:21:51.529: E/AndroidRuntime(1521): java.lang.RuntimeException: Unable to start activity ComponentInfo{le.mie.password/le.mie.password.ElencoPc}: java.lang.IllegalArgumentException: column '_id' does not exist 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.app.ActivityThread.access$600(ActivityThread.java:141) 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.os.Handler.dispatchMessage(Handler.java:99) 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.os.Looper.loop(Looper.java:137) 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.app.ActivityThread.main(ActivityThread.java:5041) 08-02 17:21:51.529: E/AndroidRuntime(1521): at java.lang.reflect.Method.invokeNative(Native Method) 08-02 17:21:51.529: E/AndroidRuntime(1521): at java.lang.reflect.Method.invoke(Method.java:511) 08-02 17:21:51.529: E/AndroidRuntime(1521): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 08-02 17:21:51.529: E/AndroidRuntime(1521): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 08-02 17:21:51.529: E/AndroidRuntime(1521): at dalvik.system.NativeStart.main(Native Method) 08-02 17:21:51.529: E/AndroidRuntime(1521): Caused by: java.lang.IllegalArgumentException: column '_id' does not exist 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:303) 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.widget.CursorAdapter.init(CursorAdapter.java:168) 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.widget.CursorAdapter.<init>(CursorAdapter.java:116) 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.widget.ResourceCursorAdapter.<init>(ResourceCursorAdapter.java:52) 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.widget.SimpleCursorAdapter.<init>(SimpleCursorAdapter.java:78) 08-02 17:21:51.529: E/AndroidRuntime(1521): at le.mie.password.ElencoPc.onCreate(ElencoPc.java:35) 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.app.Activity.performCreate(Activity.java:5104) 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 08-02 17:21:51.529: E/AndroidRuntime(1521): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
Non capisco perchè
Activity con l'errore:
codice:public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.el_pc); //otteniamo i risultati del database Database d = new Database(getApplicationContext()); final Cursor c = d.ottieniProdottiPC(); //otteniamo i prodotti startManagingCursor(c); //diamo il cursore in pasto al parser delle API di Android //creiamo le associazioni tra campi e colonne String from[] = {Script._IDPC,Script.NOME_UTENTE_PC,Script.PASSWORD_PC,Script.NOTE_PC}; int to[] = {R.id.tv_pci,R.id.tv_utente_pc,R.id.tv_password_pc,R.id.tv_note_pc}; //creiamo il SimpleAdapter che si occuperà di collegare i nostri dati alla listView SimpleCursorAdapter sca = new SimpleCursorAdapter(this /*context*/, R.layout.dettagli_pc /*specifichiamo il layout che vogliamo*/, c /*il cursore che contiene i nostri dati*/, from,to); //lo associamo al layout listaDb = (ListView) findViewById(R.id.list_p); listaDb.setAdapter(sca); listaDb.setClickable(true); //rendiamo cliccabile la lista listaDb.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long idpc) { //otteniamo le informazioni che ci servono TextView txtIdpc = (TextView) v.findViewById(R.id.tv_pci); String elemIdpcString = (String) txtIdpc.getText(); //otteniamo l'idpc che ci interessa int elemIdpcInt = Integer.parseInt(elemIdpcString); Database d = new Database(getApplicationContext()); d.cancellapc(elemIdpcInt); //cancelliamo l'elemento d.close(); c.requery(); //aggiorniamo la listview } }); } }

LinkBack URL
About LinkBacks
Rispondi quotando