0

私は、MySQLデータベースからgps座標などのgpsデータを受信し、Googleマップでこれらの座標をユーザーに表示するAndroidアプリケーションを作成しています。

LatitudeとLongitudeの値をローカルに保存するSQLiteデータベースがあります。私の質問は、SQLiteクエリでこれらの値を取得し、2つの文字列に値を返す方法です。これが私の問題に対する見方です。

DbAdapterクラス"Databasehandler":

    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;
    }

2つの値を返そうとすると、エラーが発生します。何か提案がありますか?私はAndroidプログラミングとJava全般の初心者ですので、これに対する明白な答えがあればご容赦ください。

4

1 に答える 1

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