Ich versuche einfache CRUD-Datenbankoperationen zu implementieren, im Falle einer UPDATE-Operation wechselt der Benutzer zu einem anderen Bildschirm, wo er die neuen und alten Werte für die zu aktualisierende Spalte eingibt Beim Wechsel zur nächsten Aktivität möchte ich das Objekt der in MainActivity erstellten Datenbankklasse an UpdateActivity übergeben. Ich habe es versucht, indem ich die Datenbankklasse Serializbale implementiert habe, aber es stürzt ab.Übergeben des Datenbankklassenobjekts von der Hauptaktivität an eine andere Aktivität
java.lang.RuntimeException: Parcelable encountered IOException reading a Serializable object
Hier ist der Code i
versuchtMainActivity
MyDbHandler dbObj = new MyDBHandler(this, null, null, 1);
public void updateBtnClicked(View view)
{
Intent intent = new Intent(MainActivity.this, ActivityUpdate.class);
intent.putExtra("Object", dbObj);
startActivity(intent);
}
ActivityUpdate
intent = getIntent();
dbObj2 = (MyDBHandler) intent.getSerializableExtra("Object");
public void doneButtonClicked(View view)
{
String str1 = newValue.getText().toString();
String str2 = oldValue.getText().toString();
dbObj2.updateProduct(str1, str2);
finish();
}
So, wie die Datenbank-Klasse-Objekt von einer auf eine andere Tätigkeit weitergegeben werden konnten? Danke
Das bedeutet, dass wir in jeder Aktivität eine DB-Operation ausführen wollen, haben wir ein neues Objekt der DB-Klasse erstellt und übergeben die aktuelle Aktivität als Kontext? zB in meinem Fall, was Sie vorgeschlagen haben, das Objekt der DB-Klasse in MainActivity zu erstellen, was ich bereits mache, aber die Update-Aufgabe, die ich von einer anderen Aktivität ActivityUpdate und derselben Codezeile ausführen möchte, wie Sie in der ersten Zeile erwähnt haben, ActivityUpdate dort anstelle von MainActivity sein? – shehzy
Richtig, ich habe nur ein Beispiel. Sie brauchen einfach einen Kontext –