2010-12-05 6 views
4

J'ai une interface utilisateur, je la construis dynamiquement. Je devrais mettre un composant dans un fichier de ressources xml. Alors je fais:Comment avoir une vue d'une ressource?

<?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> 

... dans un fichier res/layout/titreitem.xml que je vois nulle part. Mais je ne comprends pas comment l'obtenir à l'intérieur de mon interface utilisateur. Donc, à l'intérieur activity.onCreate, je veux faire quelque chose comme:

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

Répondre

7

approche semble être un peu incorrect. Vous devriez mettre RelativeLayout au xml comme votre TextView fait, et gonfler le xml entier. Ensuite, vous serez libre d'ajouter des vues à votre mise en page. Alors, faites ceci:

<?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> 

Dans votre activité:

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

Merci également à st0le; Sa réponse est interessante, mais je n'ai qu'une seule "réponse acceptée" :-) – Istao

23

Utilisez un LayoutInflater .... La mise en page entière peut être gonflé, sans créer de façon dynamique ....

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

ne peut pas résoudre la méthode 'gonfler (int)' –

Questions connexes