Невозможно отобразить запись, извлеченную из sqlite - PullRequest
0 голосов
/ 15 ноября 2011

Я использую приведенный ниже код для извлечения конкретной записи из sqlite.

public String getDetails(long phone) throws SQLException{
    Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {NAME, AGE, AREA, PHONE, SEX}, PHONE + "=" + phone, null, null, null, null, null);
    if(mCursor != null){
        mCursor.moveToFirst();
    }
    String result = mCursor.getString(mCursor.getColumnIndex(NAME));
    return result;
}

И я вызываю этот метод из другого класса с кодом ниже

dbAdapterExisting.read();
String temp = dbAdapterExisting.getDetails(mobile);
dbAdapterExisting.close();
textViewExistingName.setText(temp);

Запись извлекается и может отображать поле «имя» в текстовом представлении, но как мне получить все поля, например «возраст», «область», «пол», и показать его в разных текстовых представлениях. *

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

Так же, как следующее.Я покажу пример получения секса.

String sex = mCursor.getString(mCursor.getColumnIndex(SEX));

Как и вы.Для получения значения типа float, double, integer вы используете mCursor.getFloat / Double / Integer

0 голосов
/ 15 ноября 2011

Поскольку ваш метод getDetails() возвращает только одну строку, и вы хотите получить несколько элементов, вам нужно изменить некоторые вещи.Maps - хорошие структуры данных для возврата данных таким способом.Например:

public Map<String, Object> getDetails(long phone) throws SQLException{

    Map<String, Object> map = new HashMap<String, Object>();

    Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {NAME, AGE, AREA, PHONE, SEX}, PHONE + "=" + phone, null, null, null, null, null);

    if(mCursor != null){
        mCursor.moveToFirst();
    }

    String name = mCursor.getString(mCursor.getColumnIndex(NAME));
    map.put(NAME, name);
    String age = mCursor.getString(mCursor.getColumnIndex(AGE));
    map.put(AGE, age);
    String area = mCursor.getString(mCursor.getColumnIndex(AREA));
    map.put(AREA, area);
    map.put(PHONE, phone);
    String sex = mCursor.getString(mCursor.getColumnIndex(SEX));
    map.put(SEX, sex);

    return map;

}

Затем в вашем коде вызова переключитесь на использование возвращенной карты вместо:

Map<String, Object> temp = dbAdapterExisting.getDetails(mobile);
// get the name:
String name = temp.get(dbAdapterExisting.NAME);
// etc..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...