Wątek przeniesiony 2019-06-24 08:50 z przez Ktos.

Android Studio - tworzenie wielu TextView w pętli

Odpowiedz Nowy wątek
2019-06-23 19:48
0

Witam, w jaki sposób za pomocą np. pętli tworzyć nowe pola tekstowe(TextView) w programie? Chodzi o to, że chciałbym mieć w aplikacji np. 60 TextView pod sobą tylko zamiast tworzyć każde po kolei chciałbym, aby tworzyły się w pętli. W konsoli to łatwo działa bo wystarczy dać System.out.println(); w pętli, a tutaj jak to zrobić?

Dosyć chaotycznie to napisałem, dlatego jeżeli ktoś ma jakieś wątpliwości o co mi chodziło to wytłumaczę w komentarzu. Z góry dziękuje :)

Pozostało 580 znaków

2019-06-23 20:01
1
LinearLayout mainLayout = (LinearLayout) findViewById(R.id.layout);

List<TextView> textViews = new ArrayList<>();
for(int i=0;i<60;++i){
   TextView textView = new TextView(getApplicationContext());
   LayoutParams layoutParams = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT);
   textView.setLayoutParams(layoutParams);
   textView.setText("siemanko");
   textViews.add(textView);
}

for(TextView t : textViews)
    mainLayout.addView(t);
edytowany 1x, ostatnio: au7h, 2019-06-23 20:04
aczkolwiek nie polecam tego, bo później są: "skipped frames" - au7h 2019-06-23 20:04
Pytanie, dlaczego nie miałoby wystarczyć jedno - z tekstem "siemanko\nsiemanko\nsiemanko..." ;) - V-2 2019-06-24 12:09
może chce mieć onClick na każdym xD - au7h 2019-06-24 12:14

Pozostało 580 znaków

2019-06-23 20:17
4

Prawie na pewno problem X/Y. Nie potrzebujesz 60 TextView tylko wyświetlać dane w liście. Klasa kluczowa - RecyclerView.

albo po prostu ListView - au7h 2019-06-24 12:14
Myślę że nie ma sensu uczyć się przestarzałych wzorców. Z ListView i tak zazwyczaj robi się bieda RecyclerView. - Michał Sikora 2019-06-24 17:12

Pozostało 580 znaków

2019-06-26 14:31
0

Takie dynamiczne dodawanie widoków to w przyszłości tylko problemy. Odzyskiwanie stanu aplikacji po np obrocie ekranu/wyjścia z tła zacznie ci sypać dziwnymi błędami.
Troche szczegółów tutaj : https://trickyandroid.com/saving-android-view-state-correctly/

Użyj recyclerview jak sugerował @Michał Sikora

pytanie dotyczyło tworzenie wielu TextView w pętli, a nie czy dobrą praktyką jest tworzenie wielu TextView w pętli :P - au7h 2019-06-29 23:38
Dobrze jednak wiedzieć jak to sie robi prawidłowo, samo dodawanie obiektów w petli do linearlayout bez ręcznego nadpisania zapisu stanu spowoduje bład dla większości widoków - xxx_xx_x 2019-06-30 12:16

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0