您好我已经设置了一个小的SQL查询,当两个ID匹配时,它只返回用户的电子邮件地址。现在我有一个非常简单的问题,现在我想要返回另一行,例如人名,但我很少坚持设置选择,然后在另一个活动上设置文本。在我当前的代码中,我可以设置一个值,但一些指导会很好。
Handler.java
public String getContactDetails(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = null;
String name = "";
try {
cursor = db.rawQuery("SELECT email FROM person_list WHERE person_id=?", new String[] {id + ""});
if(cursor.getCount() > 0) {
cursor.moveToFirst();
name = cursor.getString(cursor.getColumnIndex("email"));
// how can I get another row?
}
return name;
}finally {
cursor.close();
}
}
主要活动......
MyDatabaseHandler myDatabaseHandler = new MyDatabaseHandler(getApplicationContext(), null, null, 1);
String email = myDatabaseHandler.getContactDetails(id);
由于 它可能非常简单。
答案 0 :(得分:0)
要调用下一个数据,可以使用 cursorObject.moveToNext()。如果光标已经超过结果集中的最后一个条目,则此方法将返回false。
public String getContactDetails(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = null;
String name = "";
try {
cursor = db.rawQuery("SELECT email FROM person_list WHERE person_id=?", new String[] {id + ""});
if(cursor.getCount() > 0) {
if (cursor.moveToFirst()){
do{
name = cursor.getString(cursor.getColumnIndex("email"));
} while (cursor.moveToNext()); // more to next data.
}
}
return name;
}finally {
cursor.close();
}
}