#android #onclick #android-alertdialog #imagebutton
#Android #onclick #android-alertdialog #imagebutton
Вопрос:
У меня есть макет с ImageButton, который раздувается в AlertDialog, где / как я должен установить прослушиватель onClick?
Вот код, который я пытался использовать:
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();
}
});
Комментарии:
1. Я обнаружил, что я делал неправильно, сначала мне нужно было найти ImageButton из расширенного представления.
Ответ №1:
Попробуйте поместить подобное в коде ur
например:-если объектом вашего alertdialog является ad, то
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();
}
});
Ответ №2:
Приведенный выше код оказался полезным, но я использовал «this» (не «ad») для контекста:
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();
}
Это проще для копирования и вставки 😉
Спасибо за предыдущий код, я бы нашел решение, описанное выше, без него.
Ответ №3:
Попробуйте сделать это в своем коде.
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();
}
Используйте этот метод из
<Button android:layout_width="match_parent"
android:layout_height="wrap_content" android:onClick="showAlertDialogButtonClicked"/>