Unfortunately, {appname} has stopped. - Fehler bei Wechseln der Seite

N

Nono

Neues Mitglied
1
Hallo zusammen,

ich hab wahrscheinlich ein Anfängerproblem.

Also ich habe bis jetzt alle meine Methoden in die MainAcivity.java geschrieben. Dann habe ich bis jetzt zwei Seiten, also zwei XML Dateien. Einmal login.xml und einmal register.xml. In der MainActivity steht bei onCreate: setContentView(R.layout.login);
Dort gibt es zwei Textfelder und zwei Buttons. Ein Button für den Login und ein Button um zur Registrierung zu wechseln. Wenn man auf "Registrierung" klickt, kommt man mit setContentView(R.layout.register); auf die Registrierung Seite. Wenn ich jetzt die Textfelder bei der Registrierung ausfülle und auf den Button zum absenden klicke, kommt die Meldung "Unfortunately, {appname} has stopped." und die App wird beendet.

Wenn ich allerdings in meiner MainActivity bei onCreate "setContentView(R.layout.register);" stehen habe, also von Anfang an auf der Registrierung Seite bin, dann klappt der Registrierungsvorgang. Und andersrum wenn ich erst bei der Registrierung bin und dann zum Login wechsel, dann funktioniert der Login nicht mehr.

Also was muss ich machen damit das klappt?

Hoffe mir kann jemand helfen.
Viele Grüße.
 
also erstmal würde ich für die jeweiligen situationen eine eigene activity anlegen dann kommen diese probleme vielleicht auch nicht mehr

poste mal dein Code vllt machst du irgendwas nciht richtig und es kommt ein nullpointer exception oder so ...
 
Poste bitte auch den (/die/das?) LogCat damit wir die Exception sehen können
 
Google empfiehlt es "the LogCat" zu nennen lol :D
 
Ok also hier der Code für den Login:

Code:
public void onClickLogin(View view) throws Exception {
	tvPlaceholder.setText("Loading...");
	String username = etLoginUsername.getText().toString();
	String password = etLoginPassword.getText().toString();
	
	JSONObject json = new JSONObject();
	json.put("username", username);
	json.put("password", password);
	String jsonText = json.toString();

	String json_encoded = Base64.encodeToString(jsonText.getBytes(), 				Base64.NO_WRAP);
	DownloadWebPageTask task = new DownloadWebPageTask();
	task.execute(new String[] { "http://meineseite.net/login.php?data=" + json_encoded });
}

Und hier für die Registrierung:

Code:
public void onClickRegister(View view) throws Exception {
	tvPlaceholder.setText("Loading...");
	String username = etUsername.getText().toString();
	String email = etEmail.getText().toString();
	String password = etPassword.getText().toString();
	String passwordWdh = etPasswordWdh.getText().toString();
	if (username.length() >= 4 && username.length() <= 16) {
		if (nameCheck(username) == true) {
			if (eMailCheck(email) == true) {
				if (password.length() > 5) {
					if (password.equals(passwordWdh)) {
						// Alles in Ordnung
						JSONObject json = new JSONObject();
						json.put("username", username);
						json.put("email", email);
						json.put("password", password);
						String jsonText = json.toString();
						String json_encoded = Base64.encodeToString(jsonText.getBytes(), Base64.NO_WRAP);
						DownloadWebPageTask task = new DownloadWebPageTask();
						task.execute(new String[] { "http://meineseite.net/register.php?data="
 + json_encoded });
					} else {
						tvPlaceholder.setText("Die Passwörter stimmen nicht überein!");
					}
				} else {
					tvPlaceholder
							.setText("Das Passwort muss mindestens 6 Zeichen haben!");
				}
			} else {
				tvPlaceholder
						.setText("Bitte gib eine gültige E-Mail Adresse ein!");
			}
		} else {
			tvPlaceholder.setText("Der Name darf nur aus Buchstaben und Zahlen bestehen!");
		}
	} else {
		tvPlaceholder.setText("Der Benutzername muss zwischen 4 und 16 Zeichen lang sein!");
	}
}

Braucht ihr noch mehr?

Hier der LogCat (Ist mir grad erst aufgefallen das da so viele Fehler kommen):

image.jpg
 
den Activity code posten bitte!

du kriegst erstens einen IllegalStateexception und eine nullpointerexception
vllt versuchst du dein textview tvPlacHolder auf eine falsche art und weise zu manipulieren

Der ursprüngliche Beitrag von 22:45 Uhr wurde um 22:51 Uhr ergänzt:

achso ja ok wenn du setcontentview mehr als einmal ausführst führt das natürlich zu problemen benutzt lieber ein fragment für die registrierung bzw den login oder gleich zwei seperate activities wie ich shcon am anfang angemerkt habe dann klappt es
ich gehe davon aus dass du setContentview mehrmals drin ahst in deinem Code dann geht das natürlich schief

ich vermute das deswegen die Illegalstateexception geworfen wird
 
Ja also ich habe es halt einmal in der onCreate Methode und dann einmal in den Methoden für den Klick auf "Registrieren" bzw auf "Zum Login". Die Methode für den Klick sieht dann so aus:

Code:
public void goToLogin(View view) {
	setContentView(R.layout.login);
}

Das darf man also so nicht machen?

Der ursprüngliche Beitrag von 23:04 Uhr wurde um 23:12 Uhr ergänzt:

EDIT:

Habs jetzt alles hinbekommen. Danke an euch :)
 
Zuletzt bearbeitet:

Ähnliche Themen

M
Antworten
3
Aufrufe
163
moin
M
D
Antworten
17
Aufrufe
407
datNeMo
D
Y
Antworten
4
Aufrufe
1.224
swa00
swa00
Zurück
Oben Unten