2012-05-11 3 views
-1

J'ai travaillé sur le développement d'une application pendant un certain temps, et tout allait bien. Toutefois, lorsque j'ai ajouté un onClickListener pour un bouton dans un de mes fichiers .xml (pas main.xml), il a commencé à se bloquer dès que j'ai essayé de l'ouvrir dans l'émulateur. Tout le code pour onClickListener est le même que pour les deux autres boutons que j'ai. voici le code de mon interlocuteur problématique:L'activité Android se bloque immédiatement après le démarrage

Button button3 = (Button)findViewById(R.id.button3); 
    button3.setOnClickListener(bt3listener); 


    private OnClickListener bt3listener = new OnClickListener(){ 
    public void onClick(View v){ 
     setContentView(R.layout.main); 
    } 
}; 

La seule façon que tout de ce code est différent de mes autres onClickListeners est qu'il fait référence à un bouton dans un fichier différent de celui main.xml. Il tombe en panne avant affiche tout de l'interface utilisateur, sauf un écran noir avec mon nom de projet sur le dessus, et me donne une invite qui dit « un

+0

TOUJOURS AJOUTER LogCat COMPLET ICI –

+0

Vous exécutez ce applicatin avec le code et l'éclipse ne donnent aucune erreur. Génial. vous utilisez la variable qui est déclarée après l'utilisation et le programme sera exécuté avec succès. –

+0

poster votre code complet – KMI

Répondre

1

pour un bouton dans un de mes fichiers .xml (non main.xml),

il faut être int la mise en page que vous définissez avec setContentView(), afin de le récupérer avec findViewById() en utilisant this ou utiliser un inflater afin d'obtenir la mise en page dans laquelle le Button est déclaré et utilise le view avec findViewById().

viewReturnedByInflater.findViewById() 
0

Vous devez initialiser le OnClickListener avant de l'attribuer au bouton.

+0

Ne pas l'initialiser dans la troisième ligne de code? –

+0

"button3.setOnClickListener (bt3listener);" Cela doit venir après l'initialisation. – Rawkode

0

Essayez cette

private OnClickListener bt3listener = new OnClickListener(){ 
public void onClick(View v){ 
    setContentView(R.layout.main); 
} 
}; 
Button button3 = (Button)findViewById(R.id.button3); 
button3.setOnClickListener(bt3listener); 
0

Il vous donne l'erreur parce que quand Button button3 = (Button)findViewById(R.id.button3); il essaie de trouver le bouton, mais étant donné que le bouton est dans une autre configuration xml, il se bloque.

Vous devez infalte l'autre mise en page ou ajouter le bouton sur la mise en page principale

Questions connexes