【问题标题】:Programmatically change a xml-created view以编程方式更改 xml 创建的视图
【发布时间】:2011-11-17 17:18:39
【问题描述】:

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

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

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

而不是:

setContentView(R.layout.main);

【问题讨论】:

  • 我认为你的意思是编程上的务实?

标签: android xml view


【解决方案1】:

是的。

为了更具体,我们需要您提供更具体的信息。

编辑

例如,您可以执行以下操作。 假设您的 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,当你改变变量时不需要再次设置。

【讨论】:

    【解决方案2】:

    即使在 setContentView 之后,您也可以对布局做任何您想做的事情。当您执行向布局添加项目或设置背景等操作时,屏幕中的视图会被重绘。

    onCreate 方法是您可以在它即将开始在屏幕上绘制时修改布局的地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      • 2012-10-21
      • 2019-10-10
      相关资源
      最近更新 更多