Поскольку ваш метод 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..