0

好吧,我做了一个活动,我正在根据字符串数组的大小创建一些 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]);
    }
4

2 回答 2

0

TextView 似乎已创建,但现在可能在 GUI 上可见,可能相互堆叠等。

1.在父线性布局上使用layout.setOrientation(ORIENTAIION.VERTICAL) 。

2.在布局上使用childCount()以确保所有 4 个文本视图都已添加到片段中。

3.还确保您没有使用removeALLView()等方法来研究问题案例。

于 2012-09-16T11:29:59.893 回答
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);
    }

我将这种类型的代码用于我的动态生成的内容(从预填充的数据库中获取内容)。

于 2012-12-07T16:07:35.983 回答