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);
}

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

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

求助大神 帮忙 看看 实现!!!!!
最新回答
仅冇旳骄傲

2024-10-30 15:38:53

其实这类似一个二维数组。如果我来实现的话,嵌套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放在一起会不会有手势的冲突问题,需要你自己去实现。
丶小嘴灬乱亲

2024-10-30 14:24:01

LinearLayout linear = new LinearLayout(this);

你是否应该把这句提到for语句外面去?否则你哪次都是加到一个新的LinearLayout中,当然只能显示最后一条记录了。