Mar*_*tin 12 java android android-linearlayout
我试图以编程方式将视图添加到线性布局.
LinearLayout layout = (LinearLayout) findViewById(R.id.info);
String [] informations = topOffer.getInformations();
TextView informationView;
View line = new View(this);
line.setLayoutParams(new LayoutParams(1, LayoutParams.FILL_PARENT));
line.setBackgroundColor(R.color.solid_history_grey);
for (int i = 0; i < informations.length; i++) {
informationView = new TextView(this);
informationView.setText(informations[i]);
layout.addView(informationView, 0);
layout.addView(line, 1);
}
Run Code Online (Sandbox Code Playgroud)
首先,我只添加了informationsView,一切正常.在添加了line-View之后,它崩溃了,出现以下错误:
java.lang.IllegalStateException:指定的子级已有父级.您必须首先在孩子的父母上调用removeView().
所以我尝试了addView(View v,int index),但它崩溃了同样的消息......
有人有解决方案吗?
谢谢,马丁
vsm*_*vsm 12
正如gpmoo7所说,你需要在循环中每次创建一个新视图
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.linear);
LinearLayout layout = (LinearLayout) findViewById(R.id.linear);
String[] informations = new String[] { "one", "two", "three" };
TextView informationView;
for (int i = 0; i < informations.length; i++) {
View line = new View(this);
line.setLayoutParams(new LayoutParams(1, LayoutParams.MATCH_PARENT));
line.setBackgroundColor(0xAA345556);
informationView = new TextView(this);
informationView.setText(informations[i]);
layout.addView(informationView, 0);
layout.addView(line, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22959 次 |
最近记录: |