Frage zu textviews und buttons

  • Antworten:7
  • OffenNicht stickyNicht beantwortet

14.07.2012 16:34:37

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.

Gelöschter Account

15.07.2012 10:30:24

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