如何从资源中获取视图?

时间:2010-12-05 09:57:18

标签: android

我有一个UI,我动态构建它。我想将一些组件放在xml资源文件中。所以我这样做:

<?xml version="1.0" encoding="utf-8"?>
<TextView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+android:id/titreItem"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
</TextView>

...在我看到的任何地方的文件res/layout/titreitem.xml中。但是我不明白如何将它放到我的UI中。所以,在activity.onCreate内,我想做类似的事情:

RelativeLayout myBigOne = new RelativeLayout(this);
TextView thingFromXML = [what here ? ];
myBigOne.addView(thingFromXML);
setContentView(myBigOne);

2 个答案:

答案 0 :(得分:27)

使用LayoutInflater ....整个布局可以充气,无需动态创建....

LayoutInflater li = LayoutInflater.from(context);
theview = li.inflate(R.layout.whatever, null)

答案 1 :(得分:8)

方法似乎有点不正确。您应该将RelativeLayout作为TextView制作成xml,并为整个xml充气。之后,您可以自由地为布局添加视图。所以,这样做:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+androi:id/relLayout>
  <TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+android:id/titreItem"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
  </TextView>
</RelativeLayout>

在您的活动中:

setContentView(R.layout.titreitem);
RelativeLayout layout = (RelativeLayout)findViewByid(R.id.relLayout);
layout.addView(...);