Je viens d'ajouter un nouveau dossier dessablable sous le dossier res. Dans le dossier drawable, j'ai copié le fichier ic_launcher.png du dossier drawable-hdpi. Je veux changer l'image ImageButton standard par le nouveau quand j'appuie sur le bouton. J'ai écrit du code, mais quand je démarre l'application, elle plante.android Imagebutton change Image OnClick
Button imgButton;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.imgButton).setOnClickListener(imgButtonHandler);
}
View.OnClickListener imgButtonHandler = new View.OnClickListener() {
public void onClick(View v) {
imgButton.setBackgroundResource(R.drawable.ic_launcher);
}
};
EDIT: J'ai changé pour ceci, et cela ne fonctionne pas non plus.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imgButton = (Button) findViewById(R.id.imgButton);
imgButton.setOnClickListener(imgButtonHandler);
}
View.OnClickListener imgButtonHandler = new View.OnClickListener() {
public void onClick(View v) {
imgButton.setBackgroundResource(R.drawable.ic_launcher);
}
};
EDIT 2: CE FONCTIONNEMENT. Merci à tous.
ImageButton button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button= (ImageButton)findViewById(R.id.imgButton);
button.setOnClickListener(imgButtonHandler);
}
View.OnClickListener imgButtonHandler = new View.OnClickListener() {
public void onClick(View v) {
button.setBackgroundResource(R.drawable.ic_launcher);
}
};
Vous devez coller ici votre erreur de logcat. – hsz
NullpointerException coz imgButton est null ... vous pouvez afficher View v to Button ou définir imgButton après setContentView ... – Selvin
Votre modification est ma réponse, et cela fonctionne! – Carnal