以编程方式更改xml创建的视图

时间:2011-09-15 09:23:21

标签: android xml view

有没有办法从XML视图中获取参数,修改其中的一些内容然后将其用作内容视图?

假设我有一个正常的LinearLayout,我想让它工作:

LinearLayout layout = (LinearLayout) findViewById(R.layout.main);
setContentView(layout);

而不是:

setContentView(R.layout.main);

2 个答案:

答案 0 :(得分:4)

更具体地说,我们需要您提供更具体的信息。

修改

例如,您可以执行以下操作。 假设您的xml规范中有TextView:

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<TextView
    android:id="@+id/mytv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="22sp"
    android:textStyle="bold"/>

</RelativeLayout>

现在,您希望以编程方式将TextView水平居中:

setContentView(R.id.main);
TextView myTV = (TextView) findViewById(R.id.mytv);
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) myTV.getLayoutParams();
lp.addRule(RelativeLayout.CENTER_HORIZONTAL);
myTV.setLayoutParams(lp);

您只需在开始时设置内容视图,并且在更改变量时无需再次设置。

答案 1 :(得分:1)

即使在setContentView之后,您也可以对布局执行任何操作。当您执行诸如向布局添加项目或设置背景等操作时,将重新绘制屏幕中的视图。

onCreate方法是您可以修改布局以开始绘制到屏幕的方法。