SQLite查询返回两个答案

时间:2013-01-21 16:18:39

标签: android sqlite

我正在编写一个从MySQL数据库接收gps数据的android应用程序,例如gps坐标,然后告诉用户在Google地图上显示用户这些坐标。

我有一个SQLite数据库,可以在本地存储纬度和经度值,我的问题是如何在SQLite查询中检索这些值并将值返回到两个字符串。 这是我对这个问题的看法。

DbAdapter类“Databasehandler”:

    public Cursor getLatLng(){
    SQLiteDatabase db = this.getReadableDatabase();
    return db.rawQuery("SELECT * FROM " + TABLE_CARCOORD + " WHERE name = " + CAR_KEY_NAME , null);
    }

Class“UserFunction”:

    public String getCoords(Context context, String lat, String lng) {
    DatabaseHandler db = new DatabaseHandler(context);
    Cursor cursor = db.getLatLng();
    if (cursor.moveToFirst()){
        lat = cursor.getString(cursor.getColumnIndex("lat"));
        lng = cursor.getString(cursor.getColumnIndex("lng"));
    }
    return lat, lng;
    }

当我尝试返回两个值时,它给出了错误。有任何建议的人吗? 我是android编程和Java的初学者,所以如果有明显的答案,请原谅我。

1 个答案:

答案 0 :(得分:1)

而不是返回String更改返回类型的方法到ArrayList或字符串数​​组,以从方法返回多个值:

 public ArrayList<String> getCoords(Context context, String lat, String lng) {
DatabaseHandler db = new DatabaseHandler(context);
 ArrayList<String> locarrlist=new  ArrayList<String>();
Cursor cursor = db.getLatLng();
if (cursor.moveToFirst()){
    lat = cursor.getString(cursor.getColumnIndex("lat"));
    lng = cursor.getString(cursor.getColumnIndex("lng"));
    locarrlist.add(lat);
    locarrlist.add(lng);
}
return locarrlist;
}

并在其他调用中将这些值检索为:

 ArrayList<String> locarrlist=getCoords(context,lat,lng);
 String lat = locarrlist.get(0);
 String lng = locarrlist.get(1);