Hallo, ich bin PL/SQL Entwickler und habe auch ein wenig Java Erfahrung.
Nun versuche ich mich in der Android Entwicklung.
So wie ich das verstanden habe sind Activities sozusagen Bildschirm-Masken mit entsprechendem Code.
Soweit klar.
Nun bin ich gewohnt, sauberen Code zu erstellen. Also dachte ich dass meine Activity Klasse nur so
das Hauptgerüst sein soll, den Rest wollte ich in "normale" Java Klassen auslagern.
DB Zugriff usw. wäre dann auch in der ausgelagerten Klasse. Dies funktioniert mal schon gar nicht.
Der DB Zugriff funktioniert in der Activity Klasse einwandfrei, in der ausgelagerten Java Klasse passt dann irgend ein Kontext nicht.
Na gut, dann lassen wir den DB Zugriff halt in der Activity Klasse.
Meine Activity Klasse enthält zur Hauptsache einen Button OnClickListener
Darin habe ich mir eine Ereinis Klasse gebaut, die macht DB Zugriffe, Webservice Requests usw.
Darin läuft 90% der Logik ab. Funktioniert soweit ok.
Sieht also grob in etwas so aus:
So, nun habe ich aber noch die restlichen 10%, die aber mit dem Button OnClickListener nichts zu tun haben.
Beispielsweise möchte ich beim Aufstarten der ganzen Activity auch dieselbe ereignisse Tabelle lesen und da Daten synchronisieren.
Den DB Zugriff habe ich innerhalb des Button OnClickListener schön in einer Ereignisse Klasse gekapselt.
Ich habe mir nun gedacht dass ich die die Ereinisklasse ganz einfach nach dem onCreate der Activity instanzieren kann.
Geht aber nicht, Compiler meint dass er da keine Ereingisklasse finden kann.
Die Ereignisklasse rausziehen aus dem Button OnClickListener zum Activity onCreate geht auch nicht, dann kann der das Ereingis innerhalb des Button OnClickListener nicht mehr auffinden.
Es ist zum verzweifeln.
Konnte ich hier mein Problem so halbwegs klar aufzeigen?
Kann mir da vielleicht jemand grundsätzliche Angaben machen wie ich so eine Ereingis-Klasse (mit DB Zugriff) bereitstellen kann
und diese dann auf Ebene onCreate sowie auf Ebene Button-OnClickListener verwenden kann? :bahnhof:
Vielen Dank
rka
Nun versuche ich mich in der Android Entwicklung.
So wie ich das verstanden habe sind Activities sozusagen Bildschirm-Masken mit entsprechendem Code.
Soweit klar.
Nun bin ich gewohnt, sauberen Code zu erstellen. Also dachte ich dass meine Activity Klasse nur so
das Hauptgerüst sein soll, den Rest wollte ich in "normale" Java Klassen auslagern.
DB Zugriff usw. wäre dann auch in der ausgelagerten Klasse. Dies funktioniert mal schon gar nicht.
Der DB Zugriff funktioniert in der Activity Klasse einwandfrei, in der ausgelagerten Java Klasse passt dann irgend ein Kontext nicht.
Na gut, dann lassen wir den DB Zugriff halt in der Activity Klasse.
Meine Activity Klasse enthält zur Hauptsache einen Button OnClickListener
Darin habe ich mir eine Ereinis Klasse gebaut, die macht DB Zugriffe, Webservice Requests usw.
Darin läuft 90% der Logik ab. Funktioniert soweit ok.
Sieht also grob in etwas so aus:
Java:
public class PhotosActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.photos_layout);
SQLiteOpenHelper database = new DatabaseHelper (this);
final SQLiteDatabase connection = database.getWritableDatabase();
Button speichern = (Button) findViewById(R.id.buttonSpeichern);
speichern.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
//... Dabei stelle ich auch eine "interne" Ereingis-Klasse zur Verfügung,
//... die macht DB Zugriffe, Webservice Requests usw.
class Ereignis {
Cursor result=connection.rawQuery("select dies und jenes from ereignisse", null);
//...
}
//... Das Ereignis wird dann natürlich instanziert und macht eigentlich alles korrekt
//... (eigentlich wollte ich diese Klasse eben als externe, "normale" Java Klasse
//.... haben, aber egal....
Ereignis e = new Ereignis(....
//... usw.
}
Beispielsweise möchte ich beim Aufstarten der ganzen Activity auch dieselbe ereignisse Tabelle lesen und da Daten synchronisieren.
Den DB Zugriff habe ich innerhalb des Button OnClickListener schön in einer Ereignisse Klasse gekapselt.
Ich habe mir nun gedacht dass ich die die Ereinisklasse ganz einfach nach dem onCreate der Activity instanzieren kann.
Geht aber nicht, Compiler meint dass er da keine Ereingisklasse finden kann.
Die Ereignisklasse rausziehen aus dem Button OnClickListener zum Activity onCreate geht auch nicht, dann kann der das Ereingis innerhalb des Button OnClickListener nicht mehr auffinden.
Es ist zum verzweifeln.
Konnte ich hier mein Problem so halbwegs klar aufzeigen?
Kann mir da vielleicht jemand grundsätzliche Angaben machen wie ich so eine Ereingis-Klasse (mit DB Zugriff) bereitstellen kann
und diese dann auf Ebene onCreate sowie auf Ebene Button-OnClickListener verwenden kann? :bahnhof:
Vielen Dank
rka