我正在从Udacity的课程中学习android开发。虽然我正在完成第2课,但是我们必须创建多个Textview,从之前创建的ArrayList
字符串中设置文本并添加那些Textviews到线性布局。
公共代码:
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
。
答案 0 :(得分:1)
没有区别。在这两种情况下,TextView
个实例都无法进行垃圾回收,因此内存占用量相等。
因为即使在循环之后我也引用了每个TextView。
如果你真的不需要这些参考,那么它只是毫无意义。这与记忆无关。
答案 1 :(得分:1)
您的代码看起来不错。但我没有看到10个相同的TextViews。如果您将其用作列表并考虑优化代码,我会考虑使用listView或recyclerView。
但你的代码仍然没问题。
答案 2 :(得分:1)
明智的表现并不重要..就像你说的那样:
我觉得我的代码更好,因为即使在循环之后我也引用了每个TextView。
如果你需要,那就去做..