2017-01-27 5 views
-3

ich von einem Kurs android Entwicklung von Udacity.While lerne ich durch die Lektion vorging 2, kam eine Situation, wo wir mehrere Textviews, stellen Sie den Text aus zuvor ArrayList von Strings erstellt und fügen Sie diese Textviews Linear Layout erstellen musste .Welcher der beiden Codes ist besser auf Speicherbasis?

Common Code:

ArrayList<String> words = new ArrayList<String>(); 
    words.add("one"); 
    words.add("two"); 
    words.add("three"); 
    words.add("four"); 
    words.add("five"); 
    words.add("six"); 
    words.add("seven"); 
    words.add("eight"); 
    words.add("nine"); 
    words.add("ten"); 
    LinearLayout rootView =(LinearLayout) findViewById(R.id.rootView); 

Nun, was sie taten:

for(int i=0;i<10;i++){ 
TextView wordView=new TextView(this); 
wordView.setText(words.get(i)); 
rootView.addView(wordView); 
} 

Was ich tat:

ArrayList<TextView> wordView = new ArrayList<TextView>(); 
    for(int i=0;i<10;i++) 
    { 
     wordView.add(new TextView(this)); 
     wordView.get(i).setText(words.get(i)); 
     rootView.addView(wordView.get(i)); 


    } 

Nun ist meine Frage meinen Weg Wetter die Aufgabe zu nähern hat mehr Speicherkosten als ihre Art?

Ich fühle mich mein Code ist besser, weil ich Bezug auf jede TextView auch nach der Schleife habe.

Antwort

1

Kein Unterschied. In beiden Fällen TextView Instanzen konnte nicht Müll gesammelt werden, so Speicher-Fußabdruck ist gleich.

weil ich Bezug auf jede TextView auch nach der Schleife habe.

Wenn Sie diese Referenzen nicht wirklich brauchen, dann ist es nur sinnlos. Es ist kein Speichervorteil.

1

Ihr Code sieht gut aus. Aber ich sehe keinen Sinn darin, 10 gleiche TextViews zu haben. Ich würde ein Listview oder recyclerView verwenden, wenn Sie es als eine Liste verwenden und denken über Ihren Code zu optimieren.

Aber immer noch ist Ihr Code in Ordnung.

+0

'Ich halte würde ein einzelner Textview wäre ein Listview oder recyclerView' Aber jede Zeile mit, also ... was Optimierung wäre das? Außerdem würden Sie eine ViewGroup zusätzlich zu den einzelnen Zeilen haben. –

+0

Listviews für eine Anzeige einer Liste der Elemente optimiert. Also mit Speichern werden die Zeilen wiederverwendet werden. –

1

Es spielt keine Rolle, Leistung klug .. Genau wie Sie gesagt haben:

Ich fühle mich meinen Code besser ist, weil ich Verweis auf jeden Textview selbst nach der Schleife haben.

Wenn Sie, dass Sie es ..

Verwandte Themen