2013-01-21 83 views
0

我正在寫一個android應用程序,它接收來自MySQL數據庫(例如GPS座標)的GPS數據,然後在Google地圖上告訴用戶這些座標顯示在用戶面前。SQLite查詢返回兩個答案

我有一個SQLite數據庫,本地存儲緯度和經度值,我的問題是如何在SQLite查詢中檢索這些值並將值返回給兩個字符串。 這是我對這個問題的看法。

將對DBAdapter類 「數據庫處理器」:

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

級 「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

你可以製作一個自定義的Coordinates類,這樣可以更好地設計。或者你可以只返回一個字符串數組。 –

+0

你會得到什麼錯誤。請修改您的問題幷包含完整的錯誤消息。 – Robert

回答

1

而不是返回方法的字符串改變返回類型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); 
+0

非常感謝!是否可以使用「ArrayList 」?谷歌地圖「LatLng」採用雙打,而不是字符串作爲'latLng position = new LatLng(Double,Double)'的參數,還是應該將字符串轉換爲double? –

+0

@ErikSoderstrom:是的,這是可能的,因爲我的東西是字符串緯度和數據庫中的lng作爲字符串,然後只是它從ArrayList中檢索後Double –