android :关于循环textView 与数组的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android :关于循环textView 与数组的问题相关的知识,希望对你有一定的参考价值。

我定义了一个数组 代替xml解析出来的数据 :
private String name_title[] = "1", "2", "3", "4", "5", "6", "7", "8";
以下是我循环的代码
for (String str_Title : name_title)

TextView t = new TextView(this);
t.setText(str_Title);

t.setBackgroundResource(R.drawable.bk);
LinearLayout linear = new LinearLayout(this);
linear.setBackgroundResource(R.drawable.bg_comment_grey);
linear.addView(t, 80, 45); //textView的大小
listView = new ListView(this);
listView.setHorizontalScrollBarEnabled(true);
listView.addHeaderView(linear);// 设置listHeader 始终位于列表顶部

listView.setAdapter(adapter);
HorizontalScrollView hsv = new HorizontalScrollView(this);
hsv.addView(listView);
setContentView(hsv);


问题是:循环之后值显示最后一个!!!
如图:

但是我想要这种效果(这个效果是我一个一个写的.........汗.)

求助大神 帮忙 看看 实现!!!!!

参考技术A 其实这类似一个二维数组。如果我来实现的话,嵌套for循环实现吧,水平方向循环new LinearLayout,添加所有列,并add到HorizontalScrollView中;垂直方向循环new TextView,并且add到LinearLayout中。这样实现出来的效果是可以左右滚动,但是不可以上下滚动。
按你的想法应该是,垂直方向一个ListView,那你不要循环去new ListView,这肯定有问题;如果你的横向数组是恒定的,那你可以定义一个CustomLayout,就像上面图,你可以定义4个TextView,使用一个adapter,inflate这个布局出来,然后动态实现你垂直方向数据添加,这些不用你循环,adapter的getView方法会帮你循环,你只要将数据元赋给adapter就行。如果你的横向数据也不是恒定的,那你需要根据你横向数据长度,来循环new出N个TextView,再添加到一个Linearlayout中,然后你可以将Linearlayout循环到ListView里边去。但是我不清楚listView和HorizontalScrollView放在一起会不会有手势的冲突问题,需要你自己去实现。
参考技术B LinearLayout linear = new LinearLayout(this);

你是否应该把这句提到for语句外面去?否则你哪次都是加到一个新的LinearLayout中,当然只能显示最后一条记录了。本回答被提问者和网友采纳

以上是关于android :关于循环textView 与数组的问题的主要内容,如果未能解决你的问题,请参考以下文章

Android 关于BottomDialogSheet 与Layout擦出爱的火花?

Android Ui线程循环

Android TextView数字增长动画效果

关于在TextView中设置DrawableLeft不显示的问题

关于在TextView中设置DrawableLeft不显示的问题

在textview android中显示json数组不起作用