我正在执行 HTTP 请求并获得结果。然后我想滚动浏览这些结果并为每个结果创建以下内容:(RL = 相对布局)
一个相对布局(图中的 RL),里面有一个 TextView 和一个 ImageView。然后,我想将所有这些“容器”添加到列表中并将它们传递给解释。
//inside onPostExecute - given a list
List<RelativeLayout> containers = new ArrayList<RelativeLayout>();
for(i=0; i<alist.size();i++){
RelativeLayout newLayout = new RelativeLayout(getApplicationContext());
TextView tv = new TextView(getApplicationContext());
ImageView iv = new ImageView(getApplicationContext());
newLayout.addView(tv);
newLayout.addView(iv);
containers.add(newLayout);
}
otherClass.send(containers);
我本质上想以编程方式创建一个容器,在其中放入两件东西,然后将其发送出去以进行进一步处理。
(这可能吗,或者有更好的方法吗?)*已编辑
在此先感谢您的帮助,我已经花了很多时间
*我已经尝试过了,它在尝试传递我认为的布局列表时会引发异常
只是要在这里添加更多:
public void send(List<RelativeLayout> containers) {
for(int i=0; i<containers.size(); i++){
RelativeLayout rl = new RelativeLayout(mContext);
rl = containers.get(i);
icons_row.addView(rl);
}
}
和例外
03-29 10:20:32.290: E/AndroidRuntime(29782): FATAL EXCEPTION: main
03-29 10:20:32.290: E/AndroidRuntime(29782): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
03-29 10:20:32.290: E/AndroidRuntime(29782): at android.view.ViewGroup.addViewInner(ViewGroup.java:3618)
03-29 10:20:32.290: E/AndroidRuntime(29782): at android.view.ViewGroup.addView(ViewGroup.java:3489)
03-29 10:20:32.290: E/AndroidRuntime(29782): at android.view.ViewGroup.addView(ViewGroup.java:3434)
03-29 10:20:32.290: E/AndroidRuntime(29782): at android.view.ViewGroup.addView(ViewGroup.java:3410)