Android Activity Variablen-Initialisierung

aquarium1974

Aktives Mitglied
Hallo zusammen,

hab schon viel gelesen, gegoogelt und probiert,
ich komm nicht drauf.

Ich will hier ein Android-App basteln...
Ich will zu beginn der Klasse ein paar Variablen global deklarieren. (strPath....)
Aber wenn ich diese Variablen nachher auslesen will steht null drin. Warum?

Hängt das mit dem Lebenszyklus von Apps zusammen oder warum kann ich die gesetzten Werten nicht sehen?

Die Methode auslesenKonfiguration ist in oncreate eingebettet, in der ja auch die strPath.... Variablen global definiert sind.
Warum sind sie in der Methode auslesenKonfiguration(); trotzdem null?

Im Debugger sehe ich strPath=null..... :(

Bin dankbar für jeden Tipp, komme nicht weiter.

Danke
Aquarium1974

Java:
public class Test1Activity extends Activity implements OnClickListener,
		LocationListener {

	LocationManager locationManager;
	Geocoder geocoder;

	// Initialisierung Variablen
	String strKennzeichen, strJetztDatum, strJetztUhrzeit, strStrasseOrt,
			strLaenge, strBreite, 
			strFabrikat, strMailadresse, strFilename,
			strTelefonnummer;
	public static String strPath, strPathDatenbank, strPathKonfiguration, strPathFoto;
	EditText edittextDatum, edittextUhrzeit;
			 
	TextView textviewStrasseort, textviewTelefonnummer;
	Button buttonJetztDatum, buttonJetztUhrzeit, buttonGPS, 
			buttonSenden;

	// DBZugriff db;
	SQLiteDatabase myDB = null;

	Date date = new Date(System.currentTimeMillis());

	// final String datetime = dateFormat.format(date);

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		onCreateDBAndDBTabled();

		// strPath = Environment.getExternalStorageDirectory() + File.separator
		// + "parksuender" + File.separator; // Standardpfad für
		// // Applikation setzen

		strPath="";
		strPath = Environment.getExternalStorageDirectory() + "/park";
                strPathFoto = strPath + "/foto";
		strPathKonfiguration = strPath + "/konfiguration";
		strPathDatenbank = strPath + "/datenbank";

.....

public void auslesenKonfiguration() {
		File sdcard = Environment.getExternalStorageDirectory();

		File file = new File(strPathKonfiguration, "/adresse.txt");

		// Read text from file
		StringBuilder text = new StringBuilder();

		try {
			BufferedReader br = new BufferedReader(new FileReader(file));
			String line;

			while ((line = br.readLine()) != null) {
				text.append(line);
				text.append('\n');
			}
		} catch (IOException e) {
			// You'll need to add proper error handling here
		}

		EditText m = (EditText) findViewById(R.id.meldender);
		m.setText(text);
	}
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
wer sagt denn dass onCreate() ausgeführt wird?
am Code nicht zu erkennen, komplizierte Activity-Wasauchimmer-Frameworks sind auch nicht ganz Java-Basics-Bereich,

debugge oder logge mit System.out.println() ob die Methode je dran kommt, auch ob vielleicht in einen anderen Objekt
als dem, in welchem später auslesenKonfiguration() ausgeführt wird
(edit: ok, statische Variable..)

vielleicht missinterpretierst du auch deinen Debugger, extern sind solche Aussagen jedenfalls nicht zu überprüfen,
möglichst immer vollständigen Code posten, den anderen ausführen können und selber die Ergebnisse sehen,

wenn man eine main-Methode erstellt, ein Objekt dieser Klasse erzeugt,
selber beide Methoden direkt hintereinander aufruft, dann ist strPath nicht null oder?
 

aquarium1974

Aktives Mitglied
wer sagt denn dass onCreate() ausgeführt wird?
am Code nicht zu erkennen, komplizierte Activity-Wasauchimmer-Frameworks sind auch nicht ganz Java-Basics-Bereich,

debugge oder logge mit System.out.println() ob die Methode je dran kommt, auch ob vielleicht in einen anderen Objekt
als dem, in welchem später auslesenKonfiguration() ausgeführt wird
(edit: ok, statische Variable..)

vielleicht missinterpretierst du auch deinen Debugger, extern sind solche Aussagen jedenfalls nicht zu überprüfen,
möglichst immer vollständigen Code posten, den anderen ausführen können und selber die Ergebnisse sehen,

wenn man eine main-Methode erstellt, ein Objekt dieser Klasse erzeugt,
selber beide Methoden direkt hintereinander aufruft, dann ist strPath nicht null oder?

Klar wird oncreate ausgeführt.
Die anderen Methoden (onresume, onstop etc. sind lediglich mit Hülle implementiert (--> leer).
Und in oncreate liegt der gesamte Code...
Ob's elegant ist ist ne andere Frage, geht sicherlich besser. Aber solange ich diesen Fehler nicht weg bekomme gehts nicht weiter...
 

sup?

Mitglied
Ist zwar eher OT, aber

Java:
 Date date = new Date(System.currentTimeMillis());

Ist es nicht unsauber, Date-Objekte so zu initialisieren? Ich würde das nur über Methoden und Konstruktoren machen.
 
S

SlaterB

Gast
funktioniert System.out.println() oder irgendein sonstiges Log?
kannst du in eine Datei auf der Festplatte schreiben, kannst du Strings in einer statischen Variable zusammengefügt speichern und später auslesen, meinetwegen dann auch mit dem Debugger?

vom jetztigen Standpunkt aus funktioniert ja nichts, insofern kann man nichts erwarten, überall könnten irgendwelche Fehler auftreten,
wenn ein Hello World-Programm nicht "Hello World" ausgibt, tja, da kann man wenig nachforschen,
erst wenn eine gesicherte Ausgabe irgendwo irgendwie funktioniert kann man anfangen, andere Dinge zu untersuchen

also ich rede jetzt mal vom 'loggen' egal auch welche Weise das umgesetzt ist,
welcher Code von dir kommt als erster dran?
logge dort 'Programmstart', wenn das irgendwo, irgendwie zu sehen ist, wäre das ein erste zählbarer Erfolg gegenüber bisher gar nichts
(ich weiß, du hast vielleicht schon viel, manches läuft und kannst gut debuggen usw., aber es noch nichts hier zu sehen ;) )

füge spaßeshalber einen Default-Konstruktor in Test1Activity ein, falls das keinen Regeln widerspricht
und logge, ob so ein Objekt überhaupt erstellt wird,
immerhin auch eine zählbare Info, auch wenn sie wohl nichts weiter bringt

logge ob die Methode onCreate() begonnen wird, vor dem super-Aufruf, nach dem super-Aufruf, und auch ganz am Ende,
was nahelegt, dass nicht durch (nicht sichtbare) Exception abgebrochen wird,
logge den Wert von strPath vor und nach der Zuweisung,

sicherlich sollte dort eine Zuweisung genauso viel bringen wie etwa ein Log-String in einer statischen Variable,
aber es ist wieder mindestens eine Info, wenn im Log steht dass die Variable zugewiesen wird und sie später dann doch null ist,

kommt irgendwelcher Code dran bis zu der Stelle zu du strPath brauchst, bisher nachschaust ob es null ist?
wo immer möglich logge was zu allen Zeitpunkten in dieser Variable steht, wird sie irgendwann wieder null?

-----

wichtig ist mir überhaupt irgendeine Bestätigung dass die Zuweisung stattfindet außer dein
> Klar wird oncreate ausgeführt.
hast du was zu bieten?
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
W JSONARRAY per Intent an andere Activity übergeben und umwandeln ggbf. Android & Cross-Platform Mobile Apps 1
M Activity einer anderen App mit result Android & Cross-Platform Mobile Apps 2
CT9288 Methode von Fragment durch Activity rufen scheitert Android & Cross-Platform Mobile Apps 7
ruutaiokwu Android Daten von "Activity A" nach "Activity B" umleiten? Android & Cross-Platform Mobile Apps 13
L Android Lockscreen-Sperrmuster activity verwenden Android & Cross-Platform Mobile Apps 1
J Android App stürzt ab wenn neue activity gestartet Android & Cross-Platform Mobile Apps 6
D Android Activity wechseln per Button Android & Cross-Platform Mobile Apps 3
P Android Android-App Crash - Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 2
S Neue Activity lässt sich nicht starten Android & Cross-Platform Mobile Apps 28
B Android Activity nach gedrückte Returntaste weiterlaufen lassen Android & Cross-Platform Mobile Apps 2
J Probleme mit ViewPager und Activity Android & Cross-Platform Mobile Apps 1
B Android In einem View der ersten Activity zweite anzeigen Android & Cross-Platform Mobile Apps 2
G Accelerometer ohne Activity Android & Cross-Platform Mobile Apps 8
J Android BroadcastHandler extends BroadcastReceiver; auf Activity zugreifen? Android & Cross-Platform Mobile Apps 5
K Android Übergeordnete Activity herausfinden? Android & Cross-Platform Mobile Apps 7
W Android Designfrage / Layout / Activity / Fragments Android & Cross-Platform Mobile Apps 2
B Login Activity Android & Cross-Platform Mobile Apps 1
M Android Suche Activity/View Namen Android & Cross-Platform Mobile Apps 1
K Unbekannte Menge von Daten (Strings oder Ints) an Activity übergeben Android & Cross-Platform Mobile Apps 0
M Fehler ohne Sinn? java.lang.RuntimeException: Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 11
S Android Eclipse erstellt keine main Activity Android & Cross-Platform Mobile Apps 4
B java.lang.RuntimeException: Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 2
K Android Activity for result aus Dialog Android & Cross-Platform Mobile Apps 1
S Android "Weiches wechseln" zwischen Views in einer Activity Android & Cross-Platform Mobile Apps 3
D Android Activity mit mehreren Views "spliten" Android & Cross-Platform Mobile Apps 10
G Activity-Wechsel bitte ohne Notification Android & Cross-Platform Mobile Apps 6
G eine Methode einer anderen Activity aufrufen Android & Cross-Platform Mobile Apps 9
D Android Neue Activity im TabWidget laden Android & Cross-Platform Mobile Apps 8
S Android In Service überprüfen ob eine Activity gebunden ist? Android & Cross-Platform Mobile Apps 6
T Android Activity finished testen Android & Cross-Platform Mobile Apps 5
T Activity / Application fundamentals Android & Cross-Platform Mobile Apps 4
M Activity wechseln aus List View mit Android & Cross-Platform Mobile Apps 2
G extends Activity für Berechnungen? Android & Cross-Platform Mobile Apps 7
G Daten von einer Activity zur nächsten übergeben Android & Cross-Platform Mobile Apps 6
G selbes Menü auf jeder Activity Android & Cross-Platform Mobile Apps 4
C Activity ohne Aktion starten Android & Cross-Platform Mobile Apps 8
C Android Kommunikation zwischen Service und Activity Android & Cross-Platform Mobile Apps 8
Maxim6394 [ Android ] Activity ändern Android & Cross-Platform Mobile Apps 9
A Activity Intent 'source not found' Android & Cross-Platform Mobile Apps 4
A Beenden einer 2ten Activity Android & Cross-Platform Mobile Apps 3
W Standard Gallery Activity? Android & Cross-Platform Mobile Apps 22
schlingel Android: Overlay in Activity Android & Cross-Platform Mobile Apps 3
G Activity beenden Android & Cross-Platform Mobile Apps 2
Z Canvas onDraw() Variablen muss in der Methode initialisiert werden Android & Cross-Platform Mobile Apps 1

Ähnliche Java Themen

Neue Themen


Oben