0

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

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

DbAdapter 类“数据库处理程序”:

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

类“用户函数”:

    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的初学者,所以如果有一个明显的答案,请原谅我。

4

1 回答 1

1

而不是返回 String 将方法的返回类型更改为ArrayList或 String Array 从方法返回一个以上的值:

 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);
于 2013-01-21T16:25:55.607 回答