Я пытаюсь создать действие карты, и мне удалось успешно получить статическую строку координат для чтения из основного действия, однако это жестко запрограммировано, и я хочу, чтобы вы вставили эти координаты в базу данных SQLite и дляих читать.Я пытался осмотреться, но я просто не могу получить ответ, который я ищу, и я был бы признателен, если бы кто-то мог помочь мне, пожалуйста
Вот моя основная деятельность - GMapsActivity.java:
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView)findViewById(R.id.map_view);
mapView.setBuiltInZoomControls(true);
//mapView.setStreetView(true);
mapController = mapView.getController();
String coordinates[] = {"51.52241608253253","-0.1318359375"};
double lat = Double.parseDouble(coordinates[0]);
double lng = Double.parseDouble(coordinates[1]);
GeoPoint general = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6) );
mapController.setZoom(10);
mapController.animateTo(general);
mapOverlays = mapView.getOverlays();
drawable = this.getResources().getDrawable(R.drawable.blue);
itemizedOverlay = new NewItemizedOverlay(drawable, this);
GeoPoint point = new GeoPoint((int)(51.555890943494276*1E6), (int)(-0.39989858865737915*1E6));
OverlayItem overlayitem = new OverlayItem(point, "Greenword Veterinary" , "57 Station Approach, South Ruislip, Ruislip, Middlesex, HA4 6SL, 020 8845 8144");
itemizedOverlay.addOverlay(overlayitem);
GeoPoint point2 = new GeoPoint((int)(51.598707*1E6), (int)(-0.393416*1E6));
OverlayItem overlayitem2 = new OverlayItem(point2, "MediVet Pinner" , "2A Pinner Green, Pinner, Middlesex, HA5 2AA, 020 8866 0727");
itemizedOverlay.addOverlay(overlayitem2);
GeoPoint point3 = new GeoPoint((int)(51.670865*1E6), (int)(-0.397034*1E6));
OverlayItem overlayitem3 = new OverlayItem(point3, "MediVet Watford" , "237 Saint Albans Road, Watford, Hertfordshire WD24 5BP, 01923 243 429");
itemizedOverlay.addOverlay(overlayitem3);
mapOverlays.add(itemizedOverlay);
myLocationOverlay = new MyLocationOverlay(this, mapView);
mapView.getOverlays().add(myLocationOverlay);
И это мой создатель базы данных - DatabaseManager.java
package com.javacodegeeks.android.googlemaps;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseManager {
public static final String KEY_ID = "_id";
public static final String KEY_LAT = "vetlat";
public static final String KEY_LONGI = "vetlongi";
public static final String KEY_NAME = "vetname";
public static final String KEY_INFO = "vetinfo";
private static final String DATABASE_NAME = "myvet.db";
private static final String DATABASE_TABLE = "vetLocations";
private static final int DATABASE_VERSION = 1;
private DbHelper ourHelper;
private final Context ourContext;
private SQLiteDatabase ourDB;
private static class DbHelper extends SQLiteOpenHelper
{
public DbHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db)
{
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_LAT + "REAL NOT NULL," +
KEY_LONGI + "REAL NOT NULL," +
KEY_NAME + "TEXT NOT NULL," +
KEY_INFO + "TEXT NOT NULL);"
);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
public DatabaseManager(Context c)
{
ourContext = c;
}
public DatabaseManager open()
{
ourHelper = new DbHelper(ourContext);
ourDB = ourHelper.getReadableDatabase();
return this;
}
public void close()
{
ourHelper.close();
}
}
Я новичок в программировании на Android, поэтому я был бы признателен, если бы кто-то мог показать мне фрагменты кода какв отличие от общих указаний, поскольку я действительно не понимаю их. lol
РЕДАКТИРОВАТЬ: я создал записи базы данных в браузере SQLite Как я могу заставить основной файл активности читать значения из этого файла?
Общая идея, что код будет пытаться вызывать такие значения, как: SELECT * FROM DB. Поместить в массив, затем зациклить его
points = ((int)([lat_value_from_db1*E6]), ((int)([longi_value_from_db1*E6]);
overlay = (points, [name_value_from_db], [info_value_from_db]);
itemizedOverylay.addOverlay(allOverlays);
Просто я действительно не уверен, как это реализовать: /
Буду очень признателен за любую помощь
Заранее спасибо