我定义了一个数组 代替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); } 问题是:循环之后值显示最后一个!!!如图:但是我想要这种效果(这个效果是我一个一个写的.........汗.)求助大神 帮忙 看看 实现!!!!!
其实这类似一个二维数组。如果我来实现的话,嵌套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放在一起会不会有手势的冲突问题,需要你自己去实现。
LinearLayout linear = new LinearLayout(this); 你是否应该把这句提到for语句外面去?否则你哪次都是加到一个新的LinearLayout中,当然只能显示最后一条记录了。