Frage zu textviews und buttons

  • Antworten:7
Andi
  • Forum-Beiträge: 13

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.

Antworten
Dietrich Gebert
  • Forum-Beiträge: 245

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

Antworten
Andi
  • Forum-Beiträge: 13

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?

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

14.07.2012, 23:42:34 via App

Du kannst dem Handler einen Konstruktor spendieren der den Button oder dessen Id enthält. Diese speicherst Du in der Handler-Instanz. Wird der Handler gefeuert dann vergleichst Du den View des eintreffenden Events mit dem gespeicherten View und reagierst passend.

Antworten
Andi
  • Forum-Beiträge: 13

15.07.2012, 00:59:33 via Website

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

Antworten
Andreas Weichert
  • Forum-Beiträge: 287

15.07.2012, 09:15:08 via Website

Hi Andi !

Ist mir nicht ganz klar was du willst. Wie hast Du denn die 10 Textviews für die Namen integriert?
Sind die alle gleichzeitig sichtbar? Sind die in einem Listview?
Erkäre doch mal.

Gruss Andreas

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

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

Antworten
Andi
  • Forum-Beiträge: 13

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.

Antworten