2017-06-13 33 views
-2

Ich versuche, den besten Ansatz zu finden, um einen Benutzer zu behandeln, der eine Schaltfläche klickt, den Text dieser Schaltfläche auf (in meinem Versuch) eine Textansicht setzt und dann automatisch auf die nächste Textansicht um zu aktualisieren die nächste Taste drücken. Im Moment kann ich dies tun, indem ich jedes Element per ID manuell zur Aktualisierung festlege, aber es muss einen besseren Weg oder einen anderen Ansatz geben.textview oder etwas anderes

Ein Beispiel: Stellen Sie sich eine Tabelle mit 2 Zeilen mit je 4 Spalten vor (jede enthält eine Textansicht) und darunter 6 Schaltflächen. Wenn eine Taste gedrückt wird, wird beim ersten Mal in der Textansicht der ersten Spalte auf den Schaltflächentext geklickt, beim nächsten Drücken einer beliebigen Taste wird die Textansicht der zweiten Spalte auf den Schaltflächentext gesetzt und so weiter. Wenn eine Zeile vollständig ist, beginnt sie in der ersten Zeile der nächsten Zeile.

In dem Moment, in dem ich eine hartcodierte Funktion benutze, die durch das onclick-Ereignis ausgelöst wird, merke ich, dass ich einige Counter und User row [i] _col [j] (oder so) implementieren kann, aber gibt es einen besseren Weg Nähern Sie sich dem (zB ähnlich wie bei der Änderung des Fokus auf Editiertext)?

public void setValue(View view) { 
    TextView textView = (TextView) findViewById(R.id.textView_row1_col1); 
    textView.setText(((Button) view).getText()); 
} 

Antwort

0

Wenn ich das richtig das Problem zu verstehen,

Ich würde vorschlagen, eine Reihe von Textviews statt mit findViewById so viel (sehr teuren Speicher weist)

TextView [][] txtArr = new TextView[XSize][Ysize]; 

Initial dass im Start- einmal und benutze es später beim Klick.

+0

und auf dem Buttonclick-Ereignis nur die entsprechende Mathematik, um in die nächste Textansicht zu erhöhen? – user1993832

+0

ja, sie wären schon in Ordnung, nur einen Text von ihnen zu ändern, wie Sie es wollten – yanivtwin