Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

kleines OOP - Problem

Das Thema "kleines OOP - Problem" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 14.01.2012, 20:19   #1 (permalink)
Erfahrener Benutzer

Modell: HTC Legend

Registriert seit: 05.04.2010
Beiträge: 205
Abgegebene Danke: 63
Erhielt 6 Danke für 6 Beiträge
Standard kleines OOP - Problem

Hallo zusammen,

ich kämpfe mal wieder mit einem OOP - Problem. Eigentlich simpel, es klappt aber trotzdem nicht.

Ich habe in meiner Hauptklasse ein Objekt. (Genau genommen ist es für die Sprachausgabe ein Objekt:
public TextToSpeech myTts;

Wenn die Sprachausgabe läuft, dann möchte ich sie bei einem Anruf mittels BroadcastReceiver (in einer anderen Klasse) stoppen:
if (hauptklasse.myTts != null) {
hauptklasse.myTts.stop();
}

Aber wie greife ich nun auf dieses Objekt zu?

Habe 2 Versuche gestartet:
1. Hauptklasse hauptklasse= new Hauptklasse ();
und
2. Hauptklasse hauptklasse;

Im ersten Fall erkennt er gar nicht, dass das Objekt befüllt ist, obwohl die Sprachausgabe läuft.
Im 2ten Fall stürzt das Programm mit einer NullPointerException ab.

Weiß jemand, wie ich es richtig machen muss?

Vielen Dank!
Duckemai ist offline   Mit Zitat antworten
Alt 15.01.2012, 10:40   #2 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 06.07.2011
Beiträge: 71
Abgegebene Danke: 14
Erhielt 7 Danke für 7 Beiträge
Standard AW: kleines OOP - Problem

Hi, hast du das schon versucht?
Hauptklasse.myTts ?

edit:
http://blog.prog-frog.de/?p=57

Geändert von soma-web (15.01.2012 um 11:20 Uhr)
soma-web ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei soma-web für diesen Beitrag:
Duckemai (15.01.2012)
Alt 15.01.2012, 11:14   #3 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: kleines OOP - Problem

Zitat:
Habe 2 Versuche gestartet:
1. Hauptklasse hauptklasse= new Hauptklasse ();
und
2. Hauptklasse hauptklasse;
leider kann das so überhaupt nicht gehen.

bei variante 1) erstellst du ein neues objekt. das heißt es ist ganz neu, wie das NEW schon sagt. also hast du ne neue instanz die nichts von der aktuellen sprachausgabe weiß.

bei variante erstellst du nur die member variable, ohne irgendwas. der member zeigt im speicher genau nirgends hin => NullpointerException

Du musst jetzt dein TTS objekt irgendwie global verfügbar machen. Das könntest du zB mit einer Singleton Klasse erreichen.

im Receiver kannst du dann über dieses Singleton auf das TTS objekt zugreifen.
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei swordi für diesen Beitrag:
Duckemai (15.01.2012)
Alt 15.01.2012, 15:24   #4 (permalink)
Erfahrener Benutzer

Modell: HTC Legend

Registriert seit: 05.04.2010
Beiträge: 205
Abgegebene Danke: 63
Erhielt 6 Danke für 6 Beiträge
Standard AW: kleines OOP - Problem

Singleton!!??

Habe ich ja noch nie was von gehört. Aber eine globale Variable würde mir natürlich helfen. Wenn ich ein brauchbares Bsp für Android gefunden habe gebe ich noch mal Feedback.

Danke!
Duckemai ist offline   Mit Zitat antworten
Alt 15.01.2012, 15:37   #5 (permalink)
Erfahrener Benutzer

Modell: HTC Legend

Registriert seit: 05.04.2010
Beiträge: 205
Abgegebene Danke: 63
Erhielt 6 Danke für 6 Beiträge
Standard AW: kleines OOP - Problem

Zitat:
Zitat von soma-web Beitrag anzeigen
Hi, hast du das schon versucht?
Hauptklasse.myTts ?

edit:
Größere Datenmengen mehreren Activities zugänglich machen. | Prog-Frog
Hey mensch, das geht !!!!!!!!!!!!! Danke!

Verstehe zwar nicht wirklich, warum und was es bewirkt, einfach den Namen der Hauptklasse zu nehmen, aber es funktioniert.
Duckemai ist offline   Mit Zitat antworten
Alt 15.01.2012, 15:39   #6 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: kleines OOP - Problem

ich würde dir empfehlen dich mit den grundlagen auseinander zu setzen und zu verstehen, was du da tust.
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 15.01.2012, 19:50   #7 (permalink)
Erfahrener Benutzer

Modell: HTC Legend

Registriert seit: 05.04.2010
Beiträge: 205
Abgegebene Danke: 63
Erhielt 6 Danke für 6 Beiträge
Standard AW: kleines OOP - Problem

@Swordi: Ach weißt Du, ich habe schon zig Bücher zum Thema OOP gelesen. Dann denke ich, jetzt hast Du es gerafft und ich komme gut mit OOP voran. Und plötzlich klappt es nicht, wo ich hätte schwören können, so muss es aber sein. Die Alternative wäre nun, mit dem Programmieren aufzuhören. Dafür macht es mir aber zu viel Spass.

Tschuldigung, wenn ich hier ab und an mal ziemlich unqualifizierte Fragen stelle. Programmiere halt so alleine vor mich hin. Wahrscheinlich fehlt mir mal zu diesem Thema ein fachlicher Austausch.

Danke aber. Hast mir ja schon ein paar mal aus der Patsche geholfen.
Duckemai ist offline   Mit Zitat antworten
Alt 15.01.2012, 20:25   #8 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: kleines OOP - Problem

hmm wenn du mit dem begriff singleton nichts anfangen kannst, dann schau dich mal nach besseren büchern um
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei swordi für diesen Beitrag:
the_alien (16.01.2012)
Alt 18.01.2012, 16:41   #9 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 10.08.2010
Beiträge: 97
Abgegebene Danke: 5
Erhielt 31 Danke für 24 Beiträge
Standard AW: kleines OOP - Problem

Zitat:
Zitat von swordi Beitrag anzeigen
hmm wenn du mit dem begriff singleton nichts anfangen kannst, dann schau dich mal nach besseren büchern um
Hm. Muss jetzt gestehen trotz Informatikstudium und über einer Dekade Berufserfahrung ist mir der Begriff Singleton bisher auch noch nicht begegnet. Hoffe mir wird jetzt mein Diplom nicht wieder aberkannt...

@Duckemai: Das ist einfach der Unterschied zwischen Klasse und Instanz einer Klasse. Die Klasse ist die Plätzchenform, die Instanz das Plätzchen das Du mit dieser Form stanzt.

Du kannst Variablen auf Klassenebene definieren mit dem keyword "static". Dann kannst Du per Klasse.Variable auf diese Variable zugreifen. Die Variable hängt dann allerdings sozusagen an der Plätzchenform. Egal wieviele Plätzchen Du stanzt, static Variablen gibt es nur einmal. Wenn Du dann sagst Klasse.Variable ist somit eindeutig klar welche Variable Du meinst.

Ohne das Wort static existiert eine Variable innerhalb der Klasseninstanz, also sozusagen innerhalb des Plätzchens. Und da es davon beliebig viele geben kann, musst Du um auf die Variable Zugreifen zu können erst mal auf die Klasseninstanz, das Plätzchen Zugriff haben.

Das kannst Du z.B. so lösen:

Code:
 
Class MyClass  {
  Variable myVariable;
  NochneKlasse x;
 
  x = New NochneKlasse();
  x.myClass = this; //Damit übergibst Du einen Link auf die aktuelle Instanz Deiner Klasse MyClass an die x Instanz der Klasse NochneKlasse
}
 
Class NochneKlasse {
   MyClass myClass;
 
  //Jetzt kannst Du auf die Variable myVariable zugreifen per myClass.myVariable
}
wilco ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
kleines Problem -> Brick knopper84 Root / Hacking / Modding für Asus Eee Pad Transformer 10 17.01.2012 17:12
Kleines Problem Fc Barcelona Root / Hacking / Modding für LG Optimus Speed 8 01.01.2012 22:46
kleines problem fineflaver Sonstige Android-Tablets 2 16.09.2011 18:01
Kleines DLNA-Problem maxlg HTC Desire HD Forum 3 01.02.2011 12:51
kleines Problem. farmer Root / Hacking / Modding für T-Mobile G1 10 29.12.2009 19:51




Du liest gerade: "kleines OOP - Problem" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.