以编程方式订购TableLayout列值

时间:2012-12-27 01:08:12

标签: android android-tablelayout

我有一个包含字符串数据的TableRow显示为分钟。 我想以编程方式对列数据进行排序/排序。 那可能吗?我真的需要这个功能 enter image description here

1 个答案:

答案 0 :(得分:1)

您展示的图片看起来不像一个TableRow;事实上,它看起来像10。

无论如何,您应该做的是保留一些与您的数据类型的列表,并保持其排序。一个简单的方法是保留一个表示你的分钟的整数列表(在这种情况下,76,84,46,68,8,9,78,78,68,46),然后对它进行排序。然后,您可以使用已排序的数据重新填充布局对象(无论它们是什么)。

ArrayList<Integer> minutes = new ArrayList<Integer>();
minutes.add(76);
minutes.add(84);
// ...
minutes.add(46);
Collections.sort(minutes);

然后,如果您已经设置了视图,则可以使用findViewById()引用每个视图,并在其上调用setText()以向其提供信息,或者根据数据创建视图:< / p>

ViewGroup group = ...; // Might be a TableRow, LinearLayout, whatever...
group.removeAllViews();
for (Integer i : minutes) {
    // Create a new view
    yourView.setText(i + "'"); // Put it in 0' format
    group.addView(yourView);
}

然后,您的group布局将包含一组代表您的minutes数组的视图。

对于它的价值,最好在这里使用ListView;这就是它的设计目标。