Прежде всего, я никогда раньше не работал с базами данных.После прочтения нескольких постов было неплохо сохранить данные, которые моя программа собирает, в базе данных SQLite.На данный момент моя проблема связана с хранением ArrayList GeoPoints.Я знаю, что это не может быть сохранено в базе данных sqlite.Я прочитал некоторые другие подобные вопросы и обнаружил, что решение может состоять в том, чтобы создать отдельную таблицу и сохранить все точки в двух столбцах этой таблицы.
В моем адаптере базы данных я написал:
// Make a New GeoPoint Table
public void geopointTable(String routeName)
{
String GeoTable = "CREATE TABLE " + routeName + "geopoints (_id INTEGER PRIMARY KEY, "
+ "KEY_GEOLONG REAL, "
+ "KEY_GEOLAT REAL);";
db.execSQL(GeoTable);
}
// Insert into GeoPoint Table
public long insertGeopoints (double longitude, double latitude, String routeName)
{
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_GEOLONG, longitude);
initialValues.put(KEY_GEOLAT, latitude);
return db.insert(routeName + "geopoints", null, initialValues);
}
В своем основном упражнении, которое собирает геопункты и сохраняет их в массиве, я написал:
db.open();
db.geopointTable(routeName);
Iterator<GeoPoint> i = points.iterator();
while (i.hasNext()) {
db.insertGeopoints(i.next().getLongitudeE6(), i.next()
.getLatitudeE6(), routeName);
Это приводит к фатальному исключению.Думаю, в конце я бы хотел, чтобы в моей строке был столбец с именем таблицы, в которой находятся геопоинты.Кто-нибудь знает более простой способ сделать это, или, возможно, может увидеть проблемы с кодом.