- Forum-Beiträge: 18
26.11.2020, 11:50:56 via Website
26.11.2020 11:50:56 via Website
Hallo Leute,
ich brauche wieder einmal eure Hilfe.
Es geht darum, dass bei meinem Appstart ein Warnhinweis kommt der wie folgt aufgerufen wird:
final AlertDialog.Builder alert = new AlertDialog.Builder(PlayerNames.this, R.style.AlertDialogStyle);
alert.setTitle(R.string.warning_message_title);
alert.setMessage(R.string.warning_message_start);
//Wenn man auf Weiter druckt, schließt sich lediglich das Fenster
alert.setPositiveButton(R.string.btn_continue, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
imageViewBackground.setVisibility(View.VISIBLE);
black.setVisibility(View.GONE);
linearLayout.setVisibility(View.VISIBLE);
}
});
//Wenn man auf Cancel druckt, dann wird die App mit finish() geschlossen
alert.setNegativeButton(R.string.btn_cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
finish();
}
});
alert.show();
Mein Problem ist jetzt:
Das ist eine Activity, in der man Namen eingeben muss/kann. Es wird dann eine Liste erstellt und durch "weiter" an die nächste Activity übergeben. Das klappt soweit auch alles wunderbar. Ich mache das mit dieser Methode (wahrscheinlich nicht perfekt, aber es funktioniert irgendwie)
private void passStringToActivity() {
sharedpreferences = getSharedPreferences(mypreference, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedpreferences.edit();
String[] arr = new String[myList.size()];
arr = myList.toArray(arr);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i]).append(",");
}
editor.putString(Name, sb.toString());
editor.apply();
}
Das Problem ist aber jetzt, wenn ich auf der nächsten Activity zurück möchte, dann rufe ich das mit onBackPressed() auf.
public void onBackPressed() {
final ProgressDialog mDialog = new ProgressDialog(MainActivity.this, R.style.AppCompatAlertDialogStyle);
mDialog.setMessage(zitat);
mDialog.show();
passStringToActivity();
Intent intent = new Intent(this, PlayerNames.class);
intent.putExtra("PlayerNumber", String.valueOf(playerAnzahl));
intent.putExtra("Activity", "gamelist");
startActivity(intent);
}
Es wird auch die erste Activity wieder aufgerufen, aber jetzt kommt wieder der Warnhinweis und die zuvor eingegebenen Namen sind weg - was ja eigentlich logisch ist, da ja wieder die Liste beim ersten Aufruf erstellt wird, aber ich weiß echt nicht was man dagegen tun kann.
Habe es mit einer Boolean Abfrage - welche prüft, ob es der erste Start der app ist oder nicht - probiert, die an die nächste Activity übergeben wird und falls man zurück drückt, diesen Wert wieder zurück an die erste Activity gibt. Aber leider kommt der Wert nicht in der zweiten Activity an.
Habe es mit Intent.putExtra und setter und getter der ersten Activity versucht. Alles ohne Erfolg.
Habe es auch mit int Werten versucht. Also
int Zahl = 0 -> erster Activityaufruf. Warnhinweis soll angezeigt werden
int Zahl = 1 -> zweiter Activityaufruf. Warnhinweis soll nicht angezeigt werden und Liste soll geholt werden.
Leider alles ohne Erfolg.
Weiß jetzt echt nicht mehr weiter.
Könnt ihr mir vielleicht helfen? Benötigt ihr noch mehr Informationen?
Danke schon einmal im Voraus!
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.