Получить одну строку из таблицы

Это идентификаторы в моей таблице:

KEY_ID(autoincremented integer primary key)   KEY_NAME(text)     KEY_PH_NO(text)

1                                             james                   1234567890
2                                             kristein                6484996755
3                                             Roen                    4668798989
4                                             Ashlie                  6897980909

Я хочу знать, как я могу получить одну запись из этой таблицы на основе unique(KEY_ID), для этого я построил такой метод getContact(),

Contact getContact(int id) {
    SQLiteDatabase db = this.getReadableDatabase();

    Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
            KEY_NAME, KEY_PH_NO }, KEY_ID + "=?",
            new String[] { String.valueOf(id) }, null, null, null, null);
    if (cursor != null)
        cursor.moveToFirst();

    Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
            cursor.getString(1), cursor.getString(2));
    // return contact
    return contact;
}

И Contact - это класс, в котором я установил весь метод getter и setter для всех атрибутов.

Пожалуйста, помогите с полным кодом.

Ответ 1

Посмотрите, может ли это помочь вам.

Предполагая, что ваше имя таблицы - Employee

public String getEmployeeName(String empNo) {
    Cursor cursor = null;
    String empName = "";
    try {
        cursor = SQLiteDatabaseInstance_.rawQuery("SELECT EmployeeName FROM Employee WHERE EmpNo=?", new String[] {empNo + ""});
        if(cursor.getCount() > 0) {
            cursor.moveToFirst();
            empName = cursor.getString(cursor.getColumnIndex("EmployeeName"));
        }
        return empName;
    }finally {
        cursor.close();
    }
}

Ответ 2

Contact getContact(int id) {
    SQLiteDatabase db = this.getReadableDatabase();

    Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
        KEY_NAME, KEY_PH_NO }, KEY_ID + "=?",
        new String[] { String.valueOf(id) }, null, null, null, null);
    if (cursor != null)
        cursor.moveToFirst();

    Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
                        cursor.getString(1), cursor.getString(2));
    // return contact
    return contact;
}

Предполагая, что у вас есть Entity Class для контакта, и затем вы просто называете его своим методом выше.

Contact singleContact = database.getContact(id);

затем вызовите контактную сущность, Im предполагает, что у вас есть метод getter getPhone();

Log.d("Phone Number :" , singleContact.getPhone());

Ответ 3

Попробуйте это

cursor.moveToPosition(position); cursor.getString(listaTarefas1.getColumnIndex("Item"))