Frage zu textviews und buttons

  • Antworten:7
  • OffenNicht stickyNicht beantwortet

14.07.2012 16:34:37 via Website

Hallo,

ich habe mir eine kleine app geschrieben, in der ich folgendes habe:
eine Textview mit einem Namen, daneben
eine Textview, wo sich eine 0 befindet, daneben
einen "Plus" Button, daneben
einen "Reset" Button, der die Zahl der zweiten Textview auf 0 setzt.

Wenn ich auf den Plus Button drücke erhöht sich der Eintrag der zweiten Textview. Drücke ich auf den "Reset" Button, wird die Textview auf 0 gesetzt. Funktioniert soweit alles gut.

Nur jetzt kommt meine Frage:

Wie programmiere ich das so, dass das ganze auch für 10 Namen funktioniert? Also ich möchte das so programmieren, dass der "Plus" Button und "Reset" Button von allen 15 Namen verwendet wird, also dass ich in java nicht 20 Buttons einzeln programmieren muss. Die Buttons haben ja im Prinzip immer die gleiche Funktion, beziehen sich nur auf jeweils andere Textviews.

Geht das?

Danke für eure Hilfe.

14.07.2012 17:45:36 via Website

Das sollte kein Problem sein.

In deinem Buttonhandler hollst du einfach alle TextViews per Id und setzt diese aud den gewissen Wert.

Gruss Dima

14.07.2012 18:00:53 via Website

Wenn ich alle meine TextViews in den gleichen Handler abelege, dann werden beim Drücken des Buttons alle TextViews verändert, oder?

15.07.2012 00:59:33 via Website

Kannst du vielleicht kurz exemplarisch etwas code posten, damit ich mir das besser vorstellen kann?
19
Gelöschter Account

15.07.2012 10:30:24 via Website

Andi
Kannst du vielleicht kurz exemplarisch etwas code posten, damit ich mir das besser vorstellen kann?

Klar,

in etwa so. Das baust Du als Inner Class in Deinen ListAdapter - da Deine Anforderung ja eine Liste ist und der ListAdapter während der zeilenweisen Verarbeitung jedes View "kennt":

1private static class MyOnClickListener implements OnClickListener {
2
3 public static final int OPERATION_MINUS = 1;
4 public static final int OPERATION_PLUS = 2;
5 public static final int OPERATION_RESET = 3;
6
7 private int operation;
8 private TextView textViewSource;
9 private TextView textViewTarget;
10
11 public MyOnClickListener(int operation, TextView textViewSource, TextView textViewTarget) {
12 super();
13
14 this.operation = operation;
15 this.textViewSource = textViewSource;
16 this.textViewTarget = textViewTarget;
17 }
18
19 @Override
20 public void onClick(View view) {
21 switch (operation) {
22 case OPERATION_MINUS:
23 // subtract textViewSource value from textViewTarget
24 break;
25 case OPERATION_PLUS:
26 // add textViewSource value to textViewTarget
27 break;
28 case OPERATION_RESET:
29 // reset textViewTarget
30 break;
31 }
32 }
33 }
34
35 // ...
36 buttonIrgendwas.setOnClickListener(new MyOnClickListener(OPERATION_PLUS, textViewIrgendwas, textViewIrgendwasAnderes);
37 // ...

— geändert am 15.07.2012 10:31:33

15.07.2012 11:15:47 via Website

Danke für deinen Code. Schau mir den mal an. Vor allem der Tip mit dem ListAdapter ist glaube ich sehr hilfreich.