我正在學習Udacity的一門課程中的android開發。當我閱讀第2課時,出現了一種情況,我們必須創建多個Textviews,設置以前創建的ArrayList
字符串的文本,並將這些Textviews添加到Linear layout 。這兩個代碼在內存基礎上哪個更好?
公共代碼:
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);
現在他們做了什麼:
for(int i=0;i<10;i++){
TextView wordView=new TextView(this);
wordView.setText(words.get(i));
rootView.addView(wordView);
}
我做了什麼:
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));
}
現在,我的問題是天氣我的方式來對待這項任務具有比他們的方式更多的內存開銷?
我覺得我的代碼更好,因爲即使在循環之後,我也參考了每個TextView
。
'我會考慮使用一個ListView或recyclerView'但每一行是一個TextView的,所以......那會是什麼優化?而且,除了單行之外,您還將擁有一個ViewGroup。 –
ListViews針對顯示項目列表進行了優化。所以內存中的行被重用。 –