как установить прослушиватель onclick для imagebutton в alertdialog

#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"/>