Pregunta

yo soy un novato en androide, trabajando en adaptadores de la lista en este momento. Sé que algún tipo de adaptadores de la lista necesita columna _id para procesar los datos. Proporciono una columna _id pero no pude hacerlo funcionar. Sigo ejemplo el bloc de notas, así que aquí está mi código:

crear el PP por esta declaración:

private static final String DB_TABLE = "radios";
public static final String KEY_NAME = "name";
public static final String KEY_URL = "url";
public static final String KEY_ROWID = "_id";

última cadena DB_CREATE estática privada =         "Crear la tabla" + DB_Table + "( "+ KEY_ROWID +" número entero autoincrement clave principal,"         + KEY_NAME + "texto no nulo, "+ KEY_URL +" texto no null);";

El uso de una clase dbhelper:

 private static class DBHelper extends SQLiteOpenHelper {

    DBHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        db.execSQL(DB_CREATE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE);
        onCreate(db);
    }
}

Aquí tengo todos los registros en dB:

public Cursor getAllRadios() {
    return db.query(DB_TABLE, new String[] {KEY_ROWID,KEY_NAME,KEY_URL}, null, null, null, null, null);
}

Y mi adaptador:

String[] from = new String[] { DBAdapter.KEY_NAME };
    int[] to = new int[] { R.id.text1 };

    try{
     SimpleCursorAdapter radios = new SimpleCursorAdapter(this, R.layout.list_item, cursor , from, to); 
     setListAdapter(radios);
    }
    catch(Exception e){
     e.printStackTrace();
    }

no pude encontrar ningún problema, pero todavía me ninguna columna como "_id" de error. Algunas ideas?

¿Fue útil?

Solución

Hmm, su código SQL para crear la tabla se ve bien para mí (aunque se podría incluir su nombre de columna entre comillas sólo para estar seguro). Pero tal vez usted ya tiene una mesa de edad existente que no se actualiza? Sólo para estar seguro:. DB_VERSION incremento y ejecutar de nuevo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top