- Forum-Beiträge: 215
11.02.2016, 10:59:46 via Website
11.02.2016 10:59:46 via Website
Ich habe eine ListView:
Wenn ich lange auf einen Eintrag dieser ListView (zB Münster) drücke, erscheint ein Kontextmenü, in dem sich der Eintrag Copy befindet. Ich möchte dann die ID (für Münster zB 402) kurzfristig speichern. Das mache ich mit SharedPreferences.
Alles kein Problem, aber:
Wie gelange ich an die ID?
Etwas Ähnliches mache ich ja auch im ClickListener der ListView:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String father = ((TextView) view.findViewById(R.id.textViewId)).getText().toString();
...
Die ID steht im TextView namens textViewId.
Nehme ich aber die letzte Zeile und schreibe sie irgendwoanders hin, so erscheint view in rot.
Wichtig dürfte unter anderem sein, dass ich mich auch beim Zugriff auf zB die zweite Zeile der ListView auf die angeklickte Position beziehe. Falls die Position nullbasiert ist, dürfte Münster zB den Index oder die Position 1 haben.
Wie kann ich mich also auf die ID der jeweils angeklickten ListView-Zeile von außerhalb der ClickListeners beziehen?
Hintergrund:
Ich benötige die ID, um einen Datensatz einem anderen "Vater" zuzuweisen. Die ID des Vaters sieht man im Bild ganz rechts. Der Name des Vaters heißt "Städte". Allgemeiner ausgedrückt: eine Information wird auf logischer Ebene einer anderen Information zu- (oder vielleicht besser untergeordnet). Das Ganze mache ich am besten über das Kontextmenü.
Mir kommt gerade eine Idee: Gibt es vielleicht so etwas wie einen setOnItem*Double*ClickListener , der ja mein Kontextmenü einleiten würde?
— geändert am 11.02.2016, 11:10:37