J'ai une mise en page avec un ImageButton gonflé dans un AlertDialog, où/comment définir un écouteur onClick?
Voici le code que j'ai essayé d'utiliser:
ImageButton ib = (ImageButton) findViewById(R.id.searchbutton);
ib.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(TravelBite.this, "test", Toast.LENGTH_SHORT).show();
}
});
Essayez de mettre comme ceci dans votre code
par exemple: -si l'objet de votre alertdialog est ad, alors
ImageButton ib = (ImageButton) ad.findViewById(R.id.searchbutton);
ib.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(TravelBite.this, "test", Toast.LENGTH_SHORT).show();
}
});
Le code ci-dessus s’est avéré utile mais j’ai utilisé "this" (pas "ad") pour le contexte:
ImageButton ib = (ImageButton) this.findViewById(R.id.searchbutton);
ib.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(TravelBite.this, "test", Toast.LENGTH_SHORT).show();
}
C'est plus facile pour copier et coller ;-)
Merci pour le code précédent, nous aurions trouvé la solution ci-dessus sans elle.
Essayez ceci dans votre code.
public void showAlertDialogButtonClicked(View view) {
// create an alert builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Name");
// set the custom layout
final View customLayout = getLayoutInflater().inflate(R.layout.custom_layout, null);
builder.setView(customLayout);
// add a button
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// send data from the AlertDialog to the Activity
EditText editText = customLayout.findViewById(R.id.editText);
sendDialogDataToActivity(editText.getText().toString());
}
});
// create and show the alert dialog
AlertDialog dialog = builder.create();
dialog.show();
}
Utilisez cette méthode de
<Button Android:layout_width="match_parent"
Android:layout_height="wrap_content" Android:onClick="showAlertDialogButtonClicked"/>