ich SQLite in meinem Android App verwenden. Alles ist toll, aber wenn ich einen Standort in meiner Wetter-App hinzufüge und ihn dann wegwische, wird der Standort nicht aus der Tabelle entfernt.SQLite auf Android nicht Zeile entfernen
Hier bekomme ich die Orte, die Orte hinzufügen und entfernen.
public TreeMap<String, LatLng> getSQLLocations() {
TreeMap<String, LatLng> locations = new TreeMap<>();
for (int i =0; i < mCursor.getCount(); i++) {
mCursor.moveToPosition(i);
String name = mCursor.getString(mCursor.getColumnIndex(WeatherContract.WeatherEntry.COLUMN_LOCATION_NAME));
double lat = mCursor.getDouble(mCursor.getColumnIndex(WeatherContract.WeatherEntry.COLUMN_LAT));
double lon = mCursor.getDouble(mCursor.getColumnIndex(WeatherContract.WeatherEntry.COLUMN_LONG));
LatLng latLng = new LatLng(lat, lon);
locations.put(name, latLng);
}
return locations;
}
public boolean removeSQLLocation(int position) {
mCursor.moveToPosition(position);
long id = mCursor.getLong(mCursor.getColumnIndex(WeatherContract.WeatherEntry._ID));
boolean deleted = mDb.delete(WeatherContract.WeatherEntry.TABLE_NAME, WeatherContract.WeatherEntry._ID + "="
+ id, null) > 0;
return deleted;
}
public long addSQLLocation(String name, LatLng latLng) {
double lat = latLng.latitude;
double lon = latLng.longitude;
ContentValues cv = new ContentValues();
cv.put(WeatherContract.WeatherEntry.COLUMN_LOCATION_NAME, name);
cv.put(WeatherContract.WeatherEntry.COLUMN_LAT, lat);
cv.put(WeatherContract.WeatherEntry.COLUMN_LONG, lon);
long ret = mDb.insert(WeatherContract.WeatherEntry.TABLE_NAME, null, cv);
refreshLocationNames();
return ret;
}
EDIT 1: Also hier ist das Problem. Ich versuche, die Zeile zu entfernen, aber wenn ich die Daten direkt von der Datenbank neu lade, wird sie nicht aktualisiert. Wenn ich also die Daten zur Datenbank hinzufüge und versuche, sie neu zu laden, wird sie auch nicht aktualisiert. Das Problem ist, dass es bei einer Datenbankänderung nicht aktualisiert wird, aber es aktualisiert, wenn ich die App neu starte.
Hier ist meine Github-Datenbank-Datei Link:
https://github.com/tsmadm/Stormy-WeatherApp/tree/SQL/app/src/main/java/com/tsm/stormy/SQL
Haben Sie eine Zeile löschen Methode in der DB-Klasse haben? –
Nicht sicher Adam. Kannst du es für mich ausprobieren, ich bin neu in SQL Vielen Dank! – TSM