2010-11-04 18 views
0

Je tente d'afficher une nouvelle vue en haut de ma vue principale.Android View ne s'affiche pas

Voici le XML pour la nouvelle vue:

<RelativeLayout 
     android:id="@+id/mapdetaillayout" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:gravity="left" 
     xmlns:android="http://schemas.android.com/apk/res/android"> 

      <TextView 
       android:text="This is the Text from the XML File." 
       android:id="@+id/DetailTextView" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"> 
      </TextView> 

    </RelativeLayout>  

Et voici le code que je utilise pour pousser la nouvelle viev sur l'écran:

 RelativeLayout DetailLayout = new RelativeLayout(c); 

     LayoutInflater inflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View v = inflater.inflate(R.layout.mapdetailview, DetailLayout);  

     TextView tv = (TextView) v.findViewById(R.id.DetailTextView); 
     tv.setText("HERE IS THE TEXT FROM THE CODE"); 

     // This Log works 
     Log.i("MESSAGE", tv.getText()); 

     DetailLayout.setBackgroundColor(Color.WHITE); 

     LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     params.gravity = Gravity.NO_GRAVITY; 

     DetailLayout.bringToFront(); 
     DetailLayout.setVisibility(View.VISIBLE); 

Le code est appelé et le journal affiche le texte attendu, ce qui pour moi indique que la vue a été créée - elle n'est simplement pas affichée à l'écran.

Toute aide serait appréciée.

Répondre

3

Je ne vois aucun appel à la méthode setContentView() d'Activity dans votre code. Probablement que tu ne fais pas ça? Si c'est le cas, c'est la raison pour laquelle vous ne voyez rien. De plus, vous n'avez pas besoin d'activer RelativeLayout manuellement. Essayez simplement de spécifier des ressources de mise en page comme vue du contenu:

setContentView(R.layout.mapdetailview); 

Vous pouvez alors obtenir votre TextView juste par:

TextView tv = (TextView) findViewById(R.id.DetailTextView); 

J'espère que cela aide.

+0

Pourquoi vous faites cela? On dirait quelque chose de complètement faux pour moi. –

0

Avez-vous essayé de changer LayoutParams.WRAP_CONTENT en fill_parent pour voir si quelque chose change?