使用TextView和SetText打印出一个表

时间:2013-04-24 00:12:51

标签: android textview settext

我正在尝试使用TextView和setText打印出一个表,但是我无法正确地打印出表格。它只打印出一行。据我所知,setText会覆盖前一行?我如何解决这个问题,以便我的for循环打印出每一行而不是只覆盖当前行?

    ScrollView sv = new ScrollView(this);
    LinearLayout ll = new LinearLayout(this);
    ll.setOrientation(LinearLayout.VERTICAL);
    sv.addView(ll);

    TextView tv = new TextView(this);
    tv.setText("Character \t Correct \t Incorrect \t Percentage\n");
    ll.addView(tv);

    for(int counter = 0; counter<scores1.length;counter++){
        tv.setText(level1[counter] + "\t " + correct1[counter] + "\t " + incorrect1[counter] + "\t " + percentage1[counter] + "\n");
    }

    this.setContentView(sv);

2 个答案:

答案 0 :(得分:1)

对于每个列,您需要实例化一个新的TextView,并在该实例下setText()

另外,也许最好在LinearLayout中使用TableLayout

答案 1 :(得分:1)

您应该考虑使用ListView,请参阅

http://developer.android.com/guide/topics/ui/layout/listview.html

Android ListView页面上有一个示例,您还可以查看:

http://www.vogella.com/articles/AndroidListView/article.html#listview_listviewexample

ListView负责为您创建TextView并重新使用它们来节省内存,并提供适配器以使用数据库和其他来源的数据。

快速破解您的代码将是:

for(int counter = 0; counter<scores1.length;counter++){
    tv = new TextView(this);
    ll.addView(tv);
    tv.setText(level1[counter] + "\t " + correct1[counter] + "\t " + incorrect1[counter] + "\t " + percentage1[counter] + "\n");
}