NEWBIE ALARM!Kann ich meine Aktivität instanziieren ... und sollte ich?
Hier ist die Situation. Ich habe eine Android ListActivity-Klasse (AppWindow), die alle Methoden enthält, die die Benutzeroberfläche für meine Anwendung erstellen und aktualisieren. Es enthält eine Methode (refreshWindow), die setListAdapter aufruft und daher nicht statisch sein muss. Bisher habe ich eine separate Klasse (FileHandler) verwendet, um Manipulationen an Dateien durchzuführen, auf die von der AppWindow-Klasse verwiesen wird. Ich habe einen Punkt erreicht, an dem ich die refreshWindow-Methode aufrufen möchte, wenn eine bestimmte Dateibearbeitung durchgeführt wurde. Da die refreshWindow-Methode jedoch nicht statisch ist, scheint es, dass ich AppWindow instanziieren und die Methode über diese Instanz aufrufen muss. Ich bin mir jedoch nicht sicher, wie ich das machen soll oder ob es überhaupt eine gute Idee ist. Vielleicht muss ich nur die gesamte FileHandler-Logik in AppWindow verschieben, obwohl ich es vorziehen würde, sie getrennt zu halten.
Hier ist eine Beschreibung der Situation in kodierter Form:
AppWindow.java
...
public class AppWindow extends ListActivity {
...
void refreshWindow() {
...
setListAdapter(new ListAdapter());
...
}
...
}
FileHandler.java
...
class FileHandler extends Activity {
...
static void doStuffToFiles() {
...
AppWindow appWindow = new AppWindow();
appWindow.refreshWindow();
...
}
...
}
Sollte ich dies tun? Wenn ja, wie installiere ich AppWindow ordnungsgemäß?
Perfekt! Ich setze einen statischen Kontext in FileHandler, setze ihn auf "this" von AppWindow, wie du es vorgeschlagen hast, und nenne dann ((AppWindow) context) .refreshWindow(). Sieht so aus als würde es funktionieren! – osweetman