Erste Schritte Elemente finden, deren Name erst "zusammengesetzt" wird

Ich möchte folgendes tun:
Ich habe im Layout mehrere Zeilen in denen mehrere TextViews/EditText-Felder nebeneinander sind. Die Elemente in den Zeilen heißen bis auf eine Ziffer als Suffix immer gleich.

Nun kann ich ja die einzelnen Elemente direkt mit ihrem Namen aufrufen, also so:

Java:
TextView tvS1 = (TextView) findViewById(R.id.tvS1);

Nun will ich das "tvS1" aber erst zur Laufzeit ermitteln, also in etwa so (Pseudocode):

Java:
Zeile=1
Element = "tvS" + Zeile
TextView tvS1 = (TextView) findViewById(R.id.???Element???);

Geht das? Wenn ja wie?

PS: Sorry, bin blutiger Anfänger (Java seit zwei Tagen) 😉
 
Zuletzt bearbeitet von einem Moderator:
Hey Meister,

ich finde es ist keine gute Idee nach 2 Tagen Android zu programmieren.

Hinter den generierten Konstanten befinden sich Strings, die kann man statt derer nutzen,.

Oder eben via Reflection.
 
Wieso packst du die TvS Elemete nicht einfach in ein Array und greifst dann mit Index drauf zu?

Gruß

Claus

P.S. Ich denke aber es wird ein genereller Codesmell vorliegen wenn du selber deine Textviews "suchen" must. Du solltest Referenzen auf deine Objekte haben die du braiuchst und nicht irgendwo im View danach suchen müssen.
 
Zuletzt bearbeitet:
P.S. Ich denke aber es wird ein genereller Codesmell vorliegen wenn du selber deine Textviews "suchen" must. Du solltest Referenzen auf deine Objekte haben die du braiuchst und nicht irgendwo im View danach suchen müssen.

Hmm, zumindest hab ich es so in meinem "HelloWorld-Tutorial" gelernt. TextView im Layout anlegen, und dann so (mit findViewById) drauf zugreifen (Original Code aus dem Buch):

Java:
    public void showText(View view) {
    	TextView tv = (TextView) findViewById(R.id.textView1);
    	tv.setVisibility(View.VISIBLE);
    }
 
Zuletzt bearbeitet von einem Moderator:
Wieso wird der Methode 'view' mitgegeben, obwohl sie es gar nicht verwendet?
Nenene, irgend etwas stimmt da nicht.

Da hat Thallius recht, das sieht so aus, als ob von hinten durch die Brust ins Auge geschossen wird.
 
Zuletzt bearbeitet:
@Tallius @arilou
Ihr wisst schon, dass es sich hierbei um Android Programmierung handelt, oder? Da ist diese Vorgehensweise geläufig. Abgesehen von dem Wunsch die R.id Variablen "von Hand" zusammen zusetzen. Das ist ungeöhnlich und wie gesagt wurde wohl nur mit Reflection zu machen. Finde ich aber eher unschön.
 
@Tallius @arilou
Ihr wisst schon, dass es sich hierbei um Android Programmierung handelt, oder? Da ist diese Vorgehensweise geläufig. Abgesehen von dem Wunsch die R.id Variablen "von Hand" zusammen zusetzen. Das ist ungeöhnlich und wie gesagt wurde wohl nur mit Reflection zu machen. Finde ich aber eher unschön.

Mag ja sein, dass man die View by ID bekommt aber dann habe ich entsprechenden Referenzen zu den ID's. Ist ja gehüpft wie gesprungen ob ich die REferenz auf den View oder sein ID behalte. Aber ich komme sicher nicht auf die Idee mir die ID irgendwie zusammen zu basteln. Das macht ja überhaupt keinen Sinn.

Gruß

Claus
 
Danke für die Antworten 😉
Das Beispiel stammt hieraus: Eduonix
Ist aus meiner Sicht ein gutes Tutorial.

Habs inzwischen über ein Array gelöst (also alle EditText-Elemente in ein zweidim. Array gepackt - thanx @Thallius). Läuft prima (auch wenns evtl. besser geht). Aber wie war das doch gleich mit Rom und den Wegen 😉
 

Zurück
Oben