我有一个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);
答案 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(...);