| 

.NET C# Java Javascript Exception

3
Hallo Zusammen

Ich habe ein kleines Problem.
Ich habe eine onClick Methode, in dieser wird eine Variable bei jedem Klick um 1 erhöht. Diese Variable soll nun in eine anderen Klasse in einem TextView dargestellt werden.
In dieser 2. Klasse gibt es einen Button refresh, bei dem der Wert der im Textfeld angezeigt werden soll aktualisiert wird.

Ich habe das Problem gefunden! Das Problem ist nicht der Zugriff sondern das Aktualisieren der Anzeige, nachdem der Button geklickt wurde, wird zwar die Variable aktualisiert aber der Bildschirm nicht!


1. Klasse:


Variable um eins erhöhen:

public void onClick(View v){

if(b1==v){
smashValue ++;

farbe = 1;
}


Variable bereitstellen:
public static int getSmashValue(){

int smashC = smashValue; // static int smashValue
return smashC;
}


2. Klasse


Beim Klick auf den Button auf den Wert zugreiffen...
public void onClick(View v){

if(b99==v){
theValue = SecondFragment.getSmashValue();


}
29.09.2014
Aless_55 3 2
Ist die Variable smashValue statisch (static)? Kann man aus dem Code nämlich nicht erkennen.
multi1209 29.09.2014
@multi1209 ja das ist sie
Aless_55 29.09.2014
2 Antworten
1
Hier ein ganz einfaches Java-Beispiel (kann auch in Android benutzt werden - Package etc. bitte hinzufügen):
public class ClassicSingleton {
private static ClassicSingleton instance = null;
protected ClassicSingleton() {
// Exists only to defeat instantiation.
}
public static ClassicSingleton getInstance() {
if(instance == null) {
instance = new ClassicSingleton();
}
return instance;
}
}

Diese Klasse kann nur über ClassicSingleton.getInstance(); aufgerufen werden. Die Klasse kann nun beliebig erweitert werden, z.B. durch weitere Instanzvariablen.
29.09.2014
edvservice 1,2k 6
danke, hab das mal ausprobiert und es klappt ganz gut, muss aber noch bisschen ausprobieren, aber wird denke ich ganz gut klappen!
Aless_55 30.09.2014
1
Ich würde solche Daten in eine eigene Klasse, die als Singleton implementiert ist auslagern (bestimmt gibt es weitere derartige "Konfigurationsdaten"). Beide Fragmente sollten dann eine Referenz auf das Singleton halten. Das Verändern und die Abfrage der Daten wären dann Methoden der neuen Klasse. Die erste Instanziierung würde die Klasse anlegen und den Wert setzen.

Zu Ihren Quelltexten:
Wo genau ist getSmashValue() definiert und warum wird nicht
return smashValue
ausgeführt und statt dessen eine lokale Variable eingeführt?
29.09.2014
edvservice 1,2k 6
Vielen Dank für deine Hilfe, ich habe mein Problem gefunden! Das Problem ist nicht der Zugriff sondern das Aktualisieren der Anzeige, nachdem der Button geklickt wurde, wird zwar die Variable aktualisiert aber der Bildschirm nicht!
Aless_55 29.09.2014
Hast du mir ein tutorial zu Singleton? ICh finde nämlich kaum was brauchabres im Internet...
Aless_55 29.09.2014
1
Was ist "brauchbar"? Ein Singleton ein eines von vielen Entwurfsmustern (Design Pattern). Hast Du mal in diese Richtung gesucht?
http://de.wikipedia.org/wiki/Singleton_%28Entwurfsmuster%29
Xantiva 29.09.2014

Stelle deine Android-Frage jetzt!