【问题标题】:Android - updating a huge amount to textviewsAndroid - 大量更新文本视图
【发布时间】:2013-10-08 18:55:43
【问题描述】:

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

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

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

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

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

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

但由于文本视图有非常具体的名称,我怎样才能最好地处理呢?

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

【问题讨论】:

  • 100 个文本视图!你真的需要所有这些吗?我不认为它好。您可以使用 listview 和 listview 回收视图。
  • 这是一个显示所有需要的数据的视图,也需要打印出来。所以它们都很重要
  • 那为什么不使用列表视图呢?
  • 或者有一个单一的文本视图并将新数据附加到它。但是拥有 100 个文本视图并不好。需要改变你的设计

标签: java android performance textview


【解决方案1】:

如果TextViews 都在一个共同的ViewGroup 中,您可以使用getChildCount()getChildAt() 遍历TextViews 并设置每个文本,而不是使用@987654329 查找每个文本@。

类似这样的:

for(int i = 0; i < parent.getChildCount(); i++){
    View child = parent.getChildAt(i); 
    if(child instanceof TextView){       
        # ... do something with the text view
    }              
}

【讨论】:

  • 文本视图在不同的ViewGroups中,它们在其他视图组中,最后它们都在一个线性布局中
  • 你可以根据需要递归遍历ViewGroupstackoverflow.com/a/7484547/220710
  • 是这样的,我一直在寻找是的。没有解决我的问题,但我很确定我的问题无法解决,我需要重构一些代码:)
【解决方案2】:

制作文本视图数组,如

 TextView[] textView = new TextView[]{R.id.textview1, ......},

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 我正在使用 TableLayouts 而不是 ListView。所以我想我真的不能使用自定义适配器?
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

      • 我没有使用 listView。我在这些 TableRows 中使用 TableLayout 和 TableRows 和 TextViews
      • 我只能说你可能有与表格布局相关联的属性...如果有人输入文本然后将其放入数组 myarray[index] 中,你可以处理这些属性
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 2015-10-23
      相关资源
      最近更新 更多