acabo de agregar una nueva carpeta dibujable en la carpeta res. En la carpeta dibujable, copié el archivo ic_launcher.png de la carpeta drawable-hdpi. Quiero cambiar la imagen estándar de ImageButton por la nueva cuando presiono el botón. Escribí un código, pero cuando inicio la aplicación, falla.Android Imagebutton cambiar imagen 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: He cambiado a esto, y esto tampoco funciona.
@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: THIS WORKS. Gracias a todos.
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);
}
};
Debe pegar aquí el error de Logcat. – hsz
NullpointerException coz imgButton es nulo ... puede convertir View v to Button o establecer imgButton after setContentView ... – Selvin
Su edición es mi respuesta, ¡y eso funciona! – Carnal