2011-09-21 5 views
0

J'ai ce code android .J'ai ma mise en page pour le bouton défini dans le fichier xml .je veux définir le texte pour le bouton ici en l'obtenant par id .mais la force de l'application se ferme.ce qui est faux?android application force se ferme

package com.action ; 
    import android.app.Activity; 
    import android.os.Bundle; 
    import android.widget.Button; 

    public class ActionActivity extends Activity { 
    @Override 
    public void onCreate(Bundle i){ 
     super.onCreate(i); 
     Button button=(Button) findViewById(R.id.but); 
     button.setText("Hey!!"); 
     setContentView(R.layout.main); 
     } 
} 

Thnx ...

+1

Afficher la sortie de logcat également. – richardwiden

Répondre

5

Vous devez utiliser setContentView(R.layout.main); avant d'utiliser findViewById().

Si vous ne le faites pas, findViewById() retournera null (puisqu'aucune vue avec cet ID est dans la configuration actuelle) et vous obtiendrez un NullPointerException en essayant de mettre le texte sur la TextView.

La version correcte de onCreate() devrait ressembler à ceci:

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

    setContentView(R.layout.main); 
    Button button = (Button) findViewById(R.id.but); 
    button.setText("Hey!!"); 
} 
+0

thnx ... mon mauvais, cudnt le faire moi-même .... – karyboy

3

Put setContentView (R.layout.main) avant de créer l'instance de bouton. comme ceci:

setContentView(R.layout.main); 

    Button button=(Button) findViewById(R.id.but); 
    button.setText("Hey!!"); 
0

vous devez mettre setContentView (R.Layout.main) avant de findViewById (R.id.but) .car il génère Exception nullpointer.

Questions connexes