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

3

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

假设我有一个普通的LinearLayout,我想让它工作:

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

替代方案:

setContentView(R.layout.main);

1
你的意思是“Pragmatically”指的是“programatically”吗? - njzk2
2个回答

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);

当您更改变量时,只需在开始时设置contentview,无需再次设置。


1
你可以在setContentView之后对布局进行任何操作。当你执行像向布局添加项目或设置背景这样的操作时,屏幕上的视图会被重新绘制。
onCreate方法是你可以修改布局的地方,因为它即将开始绘制到屏幕上。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接