-2

所以从调试和注释掉的东西我得出的结论是这个程序的问题出在 addTextView() 方法中。我完全不知道问题出在哪里。我的猜测是在我试图添加到 TextView 的布局中。非常感谢您的帮助。

public class Books extends Activity{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.books);
        addTextView("Hello World");
    }


    public void addTextView(String text)
    {
        ScrollView viewport = (ScrollView)findViewById(R.id.books);
        TextView textview= (TextView)new TextView(this);
        textview.setText(text);
        //textview.setLayoutParams(new ScrollView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        viewport.addView(textview, new ScrollView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    }

    public void addButton(String text)
    {
        ScrollView scrollview = (ScrollView)findViewById(R.id.books);
        Button btnTag = (Button)new Button(Books.this);
        btnTag.setLayoutParams(new ScrollView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        btnTag.setText(text);
        scrollview.addView(btnTag);
    }

}
4

1 回答 1

7

ScrollView 只能有一个孩子,通常是 LinearLayout。当您打电话时,scrollview.addView(blah blah)您正在向 ScrollView 添加更多的孩子,这是不允许的。

有关 ScrollView 的文档,请参见此处

--

附带说明一下,在 StackOverflow 上发布有关您遇到的错误的问题时,请说明:

  • 您遇到的错误(在 Android 中,这将在 LogCat 视图中找到)
  • 你的预期结果(你想要做什么)
  • 相关代码(在这种情况下,您也应该包含布局 XML 文件 - 虽然 ScrollView 错误绝对是您会遇到的错误之一,但它可能不是第一个需要修复的错误,以便继续前进)。

它会帮助每个人,包括将来偶然发现这个问题的人。

于 2012-12-17T23:03:31.260 回答