2 myq 26 myq_26 于 2013.08.23 13:16 提问

如何使用一个 LinearLayout 和现有的 TextViews 给一个 ScrollView 添加TextView?

下面的代码如下:一个map中有Strings如:["Color: blue","Size: big"] 调用 detailsArray。
现有的ScrollView有一个 LinearLayout 和现有的 TextViews:

<ScrollView>
    <LinearLayout>
        <TextView
            android:text="something: else"
        />
    </LinearLayout>
</ScrollView>

我已经确定了普通字段如宽,高,xml模式。
现在我想以程序化的方式添加textViews:

 TextView detail;
    LinearLayout llay = (LinearLayout)fragmentView.findViewById(R.id.container);    
    for (int i = 0; i < detailsArray.length; i++) {
                    detail = new TextView(fragmentView.getContext());
                    detail.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
                    detail.setText(detailsArray[i]);
                    llay.addView(detail);
                }
        ScrollView sv = (ScrollView) fragmentView.findViewById(R.id.scroll_view);
        sv.addView(llay);

出现一个异常:

08-21 12:38:09.975: E/AndroidRuntime(3361): Caused by: java.lang.IllegalStateException: ScrollView can host only one direct child

如何修改?

2个回答

u011634756
u011634756   2013.08.26 11:30
已采纳

ScrollView can host only one direct child 

提示已经很明显了!
问题原因,首先你在xml里面已经给包裹了 一个LinearLayout,
现在有add了一个 那么现在就是2个了  就报错了 

Jave_
Jave_   2013.08.23 14:04

sv.addView(llay);这句去掉即可

Csdn user default icon
上传中...
上传图片
插入图片