我的视图中有大约100个文本视图,它们都显示了特定于其id的值。该值是从程序中的另一个类设置的。
我正在寻找一个好的解决方案,如何对此进行编程,而不会拖延程序或将其充满内存。
在文本视图中设置普通文本:
public void setSpecificTextView(string myString)
{
TextView text = (TextView) findViewById(R.id.textView1);
text.setText(myString);
}
但是我想要100个设置函数,每个函数每次都需要检索一个textView。好像编程糟糕。
还考虑将textviews分配为私有属性,但也看起来很混乱。 textview的列表或arraylist怎么样?但是如何知道list / arraylist中的哪个项属于哪个方法
但由于textviews具有非常具体的名称,我该如何处理这个最佳方式?
编辑:我的所有文字视图都放在不同的tableLayouts和TableRows
中答案 0 :(得分:1)
如果TextView
全部属于共同ViewGroup
,您可以使用getChildCount()
和getChildAt()
来遍历TextView
并设置每个findViewById
文字,而不是使用for(int i = 0; i < parent.getChildCount(); i++){
View child = parent.getChildAt(i);
if(child instanceof TextView){
# ... do something with the text view
}
}
找到每一个。
这样的事情:
{{1}}
答案 1 :(得分:0)
制作像
一样的textview数组 TextView[] textView = new TextView[]{R.id.textview1, ......},
答案 2 :(得分:0)
将listview与自定义适配器一起使用,适配器易于更新。
答案 3 :(得分:0)
据我所知,您可以使用Hashmap存储文本视图。通过这样做,您将能够快速获得所需的textview并进行必要的更新。这是你在找什么?
答案 4 :(得分:0)
listview将为您提供免费滚动,这听起来像您将需要并使用onitemclicklistner而不是大量的onclicklisteners,因此您可以将textedit视图视为一个组而不是单独处理。我认为你应该在YouTube上找一个名为slidenerd的人。这个安卓视频数字80很棒。他说话很快并且有一个重音但听起来你需要的是一个listview适配器或baseadapter,如果你有更复杂的需求检查出来。