2010-12-05 164 views
4

我有一個用戶界面,我動態構建它。我應該把一些組件放在一個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正如我所看到的任何地方。但我不明白如何將它放入我的用戶界面。所以,裏面activity.onCreate,我想要做的事,如:

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

回答

7

做法似乎沒有什麼不正確。您應該將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(...); 
+0

還要感謝st0le;他的回答很有意思,但我只有一個「接受的答案」:-) – Istao 2010-12-05 16:03:01

23

使用LayoutInflater ....整個佈局可以膨脹,而不動態創建它....

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

無法解析法 '膨脹(INT)' – 2017-08-18 10:36:07