2012-08-31 1 views
0

J'ai ajouté une zone de texte à ma mise en page mail.xml. J'ai aussi une vue de surface utilisée pour dessiner au jeu. J'essaie d'utiliser un FrameView pour superposer à la zone de texte à partir de la disposition main.xml sur le SurfaceView, mais j'ai une erreur nulle.Superposition d'éléments d'interface utilisateur dans un fichier layout.xml à l'aide de FrameView android

Mon sur créer, tout fonctionne bien jusqu'à ce que j'appelle "f.addView (texte);"

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    iso = new Iso(30,30, this); 

    FrameLayout f = new FrameLayout(this); 
    f.addView(iso); 

    text = (EditText) findViewById(R.id.txt); 
    f.addView(text); 

    setContentView(f); 
} 

mon fichier xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<EditText 
    android:id="@+id/txt" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:ems="10" > 

    <requestFocus /> 
</EditText> 

Et je finis avec une exception de pointeur nul, si je prends la ligne "f.addView (texte)" cela fonctionnera très bien , aidez s'il vous plaît

Répondre

0

Vous avez oublié de gonfler votre mise en page XML.

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    iso = new Iso(30,30, this); 

    FrameLayout f = new FrameLayout(this); 
    f.addView(iso); 

    View rootView = LayoutInflater.from(this).inflate(R.layout.main, f); 
    text = (EditText) rootView.findViewById(R.id.txt); 
    f.addView(text); 

    setContentView(f); 
} 
+0

Ha cool :) merci beaucoup Pasha – user1056798

+0

j'ai essayé ce code, mais je reçois l'erreur en disant que l'enfant a déjà demandé un parent et je dois appeler removeView() d'abord, mais je ne peux pas trouver ce que faire ou où le faire – user1056798

+0

corrigé avec: \t \t ((ViewGroup) text.getParent()). removeView (texte); – user1056798

Questions connexes