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