我做了一个活动,我根据字符串数组的大小创建一些TextViews!但是尽管我的字符串数组上有4个项目,我用调试测试它,创建的文本视图只有1.如果有人对它有所了解请告诉我:)
setContentView(R.layout.program);
String[] daily_lessons = getResources().getStringArray(R.array.firstGradeLessons);
final TextView[] tv = new TextView[daily_lessons.length];
final LinearLayout layout = (LinearLayout) findViewById(R.id.linear1);
fasa = (TextView) findViewById(R.id.textView1);
fasa.setText(String.valueOf(daily_lessons.length));
for (int i=0; i<daily_lessons.length; i++){
tv[i] = new TextView(this);
tv[i].setText(daily_lessons[i]);
tv[i].setTextSize(20);
tv[i].setLayoutParams(new LinearLayout.LayoutParams((int)LayoutParams.FILL_PARENT,(int) LayoutParams.WRAP_CONTENT));
tv[i].setGravity(Gravity.CENTER);
layout.addView(tv[i]);
}
答案 0 :(得分:0)
TextView似乎已创建,但现在可能在GUI上可见,可能会相互堆叠等。
1.在父线性布局上使用 layout.setOrientation(ORIENTAIION.VERTICAL)。
2.在布局上使用 childCount(),以确保所有4个文本视图都已添加到代码段中。
3.还要确保您没有使用 removeALLView()等方法来解决问题案例。
答案 1 :(得分:0)
如果你仍然需要这个问题的答案,我会这样做。
setContentView(R.layout.program);
String[] daily_lessons = getResources().getStringArray(R.array.firstGradeLessons);
LinearLayout layout = (LinearLayout) findViewById(R.id.linear1);
fasa = (TextView) findViewById(R.id.textView1);
fasa.setText(String.valueOf(daily_lessons.length));
TextView tmpView = null;
for (int i=0; i<daily_lessons.length; i++){
tmpView = new TextView(this);
tmpView.setText(daily_lessons[i]);
tmpView.setTextSize(20);
layout.addView(tmpView , new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
}
我将这种类型的代码用于我的动态生成内容(从预填充数据库中获取内容)。