Textview bei OnClick bearbeiten

  • Antworten:4
Steffen H.
  • Forum-Beiträge: 6

11.07.2011, 23:48:41 via Website

Hallo zusammen,
Vorweg: Ich bin neu in Java und im Forum ebenfalls ;) Zu meinem Problem: Ich habe ca. 30 verschiedene TextViews in meiner Activity. Bei einem klick/tap auf eines der TextViews will ich nun ein Popup öffnen in welchem ich mit einem Edittext dieses TextView bearbeiten kann. Muss ich nun für jedes einzelne TextView einen OnClickListener und eine Popup-Activity erstellen (mir viel zu viel aufwand!), oder gibt es eine Möglichkeit nur einen Listener für alle zu erstellen, der dann die id des geklickten TextViews in meine Popup-Activity übergibt, sodass diese weiß welches TextView bearbeitet werden soll?

Ich hoffe das war verständlich formuliert und mir kann geholfen werden ;)

mfg Steffen

Antworten
Thomas L.
  • Forum-Beiträge: 58

12.07.2011, 07:58:32 via Website

Du schreibst eine Klasse die das OnClickListener-Interface implementiert:

1class MyOwnClickListener implements OnClickListener {
2
3public void onClick(View v) {
4if(v.getId() == R.id.txt1){
5//mach irgendwas
6}else if(v.getId() == R.id.txt2){
7//mache was anderes
8}else if(v.getId() == R.id.tXt3){
9//mache noch was anderes
10}
11}
12}

Kannst natürlich auch mit nem switch-case durchgehen statt mit dem if / else if.

Von dieser Klasse legst du eine Instanz an:

1MyOwnClickListener listener = new MyOwnClickListener();

und kannst diesen dann bei den ganzen Views registrieren:
1txtView1.setOnClickListener(listener);

Hoffe das ist das was du gesucht hast.

mfg

— geändert am 12.07.2011, 08:01:20

Antworten
Daniel online
  • Forum-Beiträge: 282

12.07.2011, 14:51:48 via Website

Es ginge auch so:

Im .xml File verknüpfst du für die Textviews mit der onClick Methode:
1<TextView
2 android:onClick="onClick"
3/>

Im Code:
1public void onClick(View v)
2{
3 öffneDialog(v.getId());
4}
5
6public void öffneDialog(int id)
7{
8 // hier schreibst du den Code rein der abhänig der Id des TextViews dein Dialog öffnet, so wie dus halt haben möchtest
9}

Ich hoffe das hilft dir weiter :)

— geändert am 12.07.2011, 14:52:14

Antworten
Steffen H.
  • Forum-Beiträge: 6

13.07.2011, 13:44:24 via Website

Vielen Dank für eure Antworten, habt mir sehr geholfen :D
Das Onclick in der xml zu verknüpfen war in dem Fall der bequemere Weg.Ich habe es jetzt so gelöst, dass ich egal welche Textview ich anklicke immer die gleiche Popup-activity öffne und mit putExtra die id übergebe. So hab ich meine Entscheidungsstruktur erst in der Popup-activity, was ja auch prima funktioniert...
mfg

Antworten
Daniel online
  • Forum-Beiträge: 282

13.07.2011, 14:11:26 via Website

Ja, das onClick in der .xml Datei zu verknüpfen finde ich auch eigentlich immer bequemer, so hält man auch den Code übersichtlicher!

Antworten