
Bergmann2016
Neues Mitglied
- 4
Einen angenehmen Nachmittag wünsche ich Euch,
meine Frage ist gewiss eine simple Anfängerfrage, aber alles was ich im Inet fand bezog sich auf Variablen oder ähnliches übergeben.
Ich möchte jedoch nur das die MainActivity aus einer anderen Klasse eine Methode aufruft.
Zur Erläuterung:
Ich habe angefangen eine neue App zu schreiben. Beim Start der App werden SharedPreference-Einträge überprüft und ausgewertet. Ursprünglich lag das ganze Zeug in der MainActivity, aber um es 1. übersichtlicher zu haben und 2. um es auch wiederverwertbar zu machen habe ich es nun in eine eigene Klasse ausgelagert und dieser Klasse einem eigenen Package gegeben.
Jetzt will die MainActivity aber das ich in meiner neuen Klasse Methoden und Werte statisch mache, was nicht geht. Denn die Werte variieren.
Ich hatte versucht ein Interface zu verwenden, aber ich fand merkwürdiger Weise nirgends eine Erklärung wie es genau geht. Aber ich bin mir mittlerweile auch gar nicht sicher ob ein Interface das ist was ich benötige. Denn der Aufruf der fraglichen Methode verläuft ohne Übergabe von Parametern.
Während ich es hier schreibe, fällt mir ein, dass am Ende ja doch eine Information zurück an die MainActivity übergeben werden muss. Damit diese weiß was sie als nächstes aufrufen soll.
Kann mir jemanden von euch einen Denkanstoß, ein Link zum narrensicheren Tutorial oder ähnliches nennen? Denn das ist für mich ja was elementares was ich verstehen will und muss.
Okay nun habe ich einen neuen Ansatz im Internet gefunden. In dem ich
verwende. So gibt es keine Probleme wegen statisch oder nicht statisch. Jedoch meckert Android Studio das die Zeile sp = getSharedPreferences() auf nichts verweist.
Jedoch funktioniert die Methode, wenn sie in der MainActivity eingetragen ist.
Ich glaube ich habe das Prinzip von Klassen bis jetzt noch nicht verstanden... kann es sein das meine Klasse aus getter und ggf. setter bestehen muss? Ich schreibe meine Klasse erstmal um.
Dann melde ich mich morgen noch einmal, vllt. hat ja bis dahin irgendwer auch einen Tipp für mich gehabt.
meine Frage ist gewiss eine simple Anfängerfrage, aber alles was ich im Inet fand bezog sich auf Variablen oder ähnliches übergeben.
Ich möchte jedoch nur das die MainActivity aus einer anderen Klasse eine Methode aufruft.
Zur Erläuterung:
Ich habe angefangen eine neue App zu schreiben. Beim Start der App werden SharedPreference-Einträge überprüft und ausgewertet. Ursprünglich lag das ganze Zeug in der MainActivity, aber um es 1. übersichtlicher zu haben und 2. um es auch wiederverwertbar zu machen habe ich es nun in eine eigene Klasse ausgelagert und dieser Klasse einem eigenen Package gegeben.
Jetzt will die MainActivity aber das ich in meiner neuen Klasse Methoden und Werte statisch mache, was nicht geht. Denn die Werte variieren.
Ich hatte versucht ein Interface zu verwenden, aber ich fand merkwürdiger Weise nirgends eine Erklärung wie es genau geht. Aber ich bin mir mittlerweile auch gar nicht sicher ob ein Interface das ist was ich benötige. Denn der Aufruf der fraglichen Methode verläuft ohne Übergabe von Parametern.
Während ich es hier schreibe, fällt mir ein, dass am Ende ja doch eine Information zurück an die MainActivity übergeben werden muss. Damit diese weiß was sie als nächstes aufrufen soll.

Kann mir jemanden von euch einen Denkanstoß, ein Link zum narrensicheren Tutorial oder ähnliches nennen? Denn das ist für mich ja was elementares was ich verstehen will und muss.
Okay nun habe ich einen neuen Ansatz im Internet gefunden. In dem ich
Code:
MeineKlassex = new MeineKlasse();
x.Methode();
verwende. So gibt es keine Probleme wegen statisch oder nicht statisch. Jedoch meckert Android Studio das die Zeile sp = getSharedPreferences() auf nichts verweist.
Code:
public void Methode() {
//Daten für SharedPreference vorbereiten
sp = getSharedPreferences("Installation ", MODE_PRIVATE);
e = sp.edit();
//prüfen ob daten schon gespeichert wurden
if(sp.getString("Installation", "").equals("")){
//Wenn Daten fehlen
setzeZeit();
}else {
//Wenn Daten vorhanden
datum_zeit = sp.getString("Installation", "");
if(InetVorhanden()){
vergleicheDatum();
}else{
Toast.makeText(getApplicationContext(),"Internet ist nicht vorhanden", Toast.LENGTH_SHORT).show();
}
}
}
Jedoch funktioniert die Methode, wenn sie in der MainActivity eingetragen ist.
Ich glaube ich habe das Prinzip von Klassen bis jetzt noch nicht verstanden... kann es sein das meine Klasse aus getter und ggf. setter bestehen muss? Ich schreibe meine Klasse erstmal um.
Dann melde ich mich morgen noch einmal, vllt. hat ja bis dahin irgendwer auch einen Tipp für mich gehabt.
Zuletzt bearbeitet: