2011-09-15 87 views
3

是否有方法从XML视图获取参数,修改其中的某些内容,然后将其用作内容视图?以编程方式更改xml创建的视图

比方说,我有一个正常的LinearLayout,我想使这项工作:

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

相反的:

setContentView(R.layout.main); 
+1

通过语用你的意思是编程,我假设? – njzk2

回答

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

您只要设定在一开始的内容查看,并且不需要当您更改变量时再次设置它。

+0

我编辑了我的帖子,也许它更明确 – skamlet

+0

非常感谢,这就是我一直在寻找。 – skamlet

1

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

onCreate方法是您可以修改布局的位置,因为它可以开始绘制到屏幕上。