0

我的视图中有大约 100 个文本视图,它们都显示了特定于它的 id 的值。该值是从程序中的另一个类设置的。

我正在寻找一个好的解决方案,如何对其进行编程,而不会停止程序或使其充满内存。

在文本视图中设置普通文本:

public void setSpecificTextView(string myString)
{
     TextView text = (TextView) findViewById(R.id.textView1);
     text.setText(myString);
}

但是我想要 100 个集合函数,并且每个函数每次都需要检索一个 textView。看起来像糟糕的编程。

还考虑将文本视图分配为私有属性,但似乎也很混乱。文本视图的列表或数组列表怎么样?但是如何知道list/arraylist中的哪一项属于哪个方法

但是由于 textviews 有非常具体的名称,我怎样才能以最好的方式处理呢?

编辑:我所有的文本视图都放入不同的 tableLayouts 和 TableRows

4

5 回答 5

1

如果TextViews 都是共同ViewGroup的,您可以使用getChildCount()andgetChildAt()来遍历TextViews 并设置每个文本,而不是使用findViewById.

像这样的东西:

for(int i = 0; i < parent.getChildCount(); i++){
    View child = parent.getChildAt(i); 
    if(child instanceof TextView){       
        # ... do something with the text view
    }              
}
于 2013-10-08T10:32:31.257 回答
0

将 listview 与您的自定义适配器一起使用,适配器很容易更新。

于 2013-10-08T10:28:18.153 回答
0

据我了解,您可以使用 Hashmap 来存储您的文本视图。通过这样做,您将能够快速获取所需的 textview 并进行所需的更新。是你要找的吗?

于 2013-10-08T10:40:54.730 回答
0

列表视图将为您提供听起来像是您需要的免费滚动,并使用 onitemclicklistner 而不是大量的 onclicklisteners,因此您可以将 textedit 视图视为一个组而不是单独的。我认为您应该在 YouTube 上找到一个名为 slidenerd 的人。他的 android 视频编号 80 很棒。确保他说话速度很快并且有口音,但听起来您需要的是 listview 适配器或 baseadapter,如果您有更复杂的需求,请检查一下。

于 2013-10-08T10:55:43.103 回答
0

使 textview 数组像

 TextView[] textView = new TextView[]{R.id.textview1, ......},
于 2013-10-08T10:20:51.003 回答