为什么我不能在调用setContentView之前改变按钮的属性?

时间:2011-12-22 16:14:21

标签: android

如果这是一个愚蠢的问题,请提前抱歉!

我正在玩Android中的一些东西,我正在尝试在运行时更改元素,这些元素是在xml文件中指定的。

Button buttonSetup = (Button) findViewById(R.id.buttonSetup);
buttonSetup.setTextSize(40);

但是,我注意到如果您在之前进行更改,这会导致应用程序崩溃 -

setContentView(R.layout.main);

这是什么原因? (对不起,如果我错过了一些明显的东西!我认为我的大脑已经进入冬眠冬天!)

我原本以为在 setContentView之前更改元素是最好的做法,这样如果你改变了很多元素(比如说六个元素的六个左右属性),那就不是了用户在屏幕上更改内容时显而易见。

谢谢!

1 个答案:

答案 0 :(得分:3)

简单回答:

通过调用setContentView来夸大您的xml-Layout。 在你没有夸大它之前,Activity不知道XML。

您可以使用以下代码手动充气视图:

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout myLayout = (LinearLayout) inflater.inflate(R.layout.nameOfXML, null);

然后使用

将View设置为此膨胀布局
setContentView(myLayout);