android – 尝试在使用XML布局时动态地将TextView添加到ScrollView崩溃

这是一个非常简单的例子,我在R.layout.main中定义了一个ScrollView.然后我尝试动态添加TextView.

不幸的是,这次崩溃.

ScrollView scroll = (ScrollView) this.findViewById(R.id.scrollView1);

TextView tv1 = new TextView(this);
tv1.setText("This is tv1");

scroll.addView(tv1);

setContentView(R.layout.main);

现在我可以这样做:

ScrollView scroll = new ScrollView(this);
TextView tv1 = new TextView(this);
tv1.setText("This is tv1");

scroll.addView(tv1);

setContentView(scroll);

但我真的希望能够在XML中定义一些基本UI元素,然后动态添加其他元素.

最好的方法是什么?

解决方法

那是因为您正在尝试访问尚未被Android解析的视图.

当您使用XML定义布局时,您必须首先调用setContentView,并将布局文件引用传递给它,以便Android可以解析该文件.只有这样,您才能使用findViewById访问元素.

这基本上意味着您应该在尝试访问布局的任何元素之前调用setContentView.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...