- Forum-Beiträge: 18
03.09.2020, 11:27:54 via Website
03.09.2020 11:27:54 via Website
Hey Leute,
da ich mich kurz halten möchte. Hier eine kurze Zusammenfassung:
Die erste Activity hat einen NumberPicker und die gewählte Nummer wird an die nächste Activity weitergegeben. Dort habe ich eine GridView und beim ersten Durchlauf erzeugt der Code eine ArrayList mit Elementen "PlayerX" (X = eine Zahl von 1 bis zum Wert aus dem NumberPicker)
Alles funktioniert gut, aber ich kann die Werte nicht aktualisieren.
Wenn der Benutzer auf einen Namen klickt (z.B. "Player2"), öffnet sich ein AlertDialog mit dem Namen im Titel und einem EditText. Nach dem Bestätigen des neuen Namens mit dem Positiv-Button wird der neue Name gespeichert, aber nicht in der Grid-Ansicht angezeigt. Wenn ich erneut auf den gleichen Namen ("Player2") klicke, wird der neue Name jedoch im Titel des AlertBuilders angezeigt. Später in der App, steht aber wieder Player2 und nicht der neu eingegebene Name.
Der gesamte Code läuft im CustomAdapter. Hier der Code:
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//um tastatur automatisch zu öffnen und schließen
final InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
//andere Listview
LayoutInflater linf = LayoutInflater.from(getContext());
final View inflator = linf.inflate(R.layout.builder_window, null);
AlertDialog.Builder alert = new AlertDialog.Builder(getContext());
alert.setTitle(birdList.get(position));
alert.setView(inflator);
final EditText et1 = (EditText) inflator.findViewById(R.id.edit_name);
alert.setPositiveButton("Continue", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton)
{
String s1=et1.getText().toString();
adapter.remove(birdList.get(position));
adapter.insert(s1, position);
adapter.notifyDataSetChanged();
}
});
alert.setNegativeButton("Delete", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
adapter.remove(birdList.get(position));
adapter.notifyDataSetChanged();
}
});
alert.setNeutralButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
alert.show();
}
Das funktioniert aber relativ problemlos beim Löschen. Dort wird die Liste nach dem Drücken des "Delete"Knopfes aktualisiert und löscht einen Wert (aber den letzten und nicht den ausgewählten)
Bitte, könnt ihr mir helfen? Ich mache jetzt an dem blöden Problem schon etliche Stunden rum und komme einfach auf kein Ergebnis...
Danke 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.