Кнопка onClick внутри просмотра используется в диалоговом окне оповещений

Вопрос:

У меня есть кнопка внутри файла макета, которую я использую для создания настраиваемого диалогового окна оповещений. Для не связанных причин мне нужно использовать кнопки внутри макета, а не использовать встроенные кнопки диалогов.

На самом деле это очень похожий сценарий на этот вопрос:

Android: кнопка в AlertDialog

Проблема в том, что onClick никогда не вызывает вызов, когда я нажимаю кнопку внутри диалогового окна предупреждения.

Вот соответствующая часть кода внутри OnCreate в моей деятельности:

LayoutInflater dcvI = LayoutInflater.from(this);
final View dcv = dcvI.inflate(R.layout.dialog,null);
final Button sd_abort = (Button)dcv.findViewById(R.id.abort1);
sd_abort.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

//I do work here

}});

Код диалогового окна предупреждения:

View exp =  LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog,null,false);

new AlertDialog.Builder(MainActivity.this, R.style.CustomDialogTheme)
.setTitle("Warning!!!")
.setIcon(R.drawable.dhd_icon)
.setView(exp)
.show();

Кто-нибудь знает, если мне не хватает чего-то, что удерживает кнопку и прослушивателя onclick от соединения?

благодаря

Лучший ответ:

Вы можете создать новый класс прослушивателя кнопок

public class ButtonListener implements OnClickListener {

    @Override
    public void onClick(View v) {
        // do your work

    }

}

затем установите их на обе кнопки

ButtonListener buttonListener = new ButtonListener();
sd_abort.setOnClickListener(buttonListener);

(в вашем диалоговом окне)

View exp =  LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog,null,false);

Button dialogButton = (Button)exp.findViewById(R.id.abort1);
dialogButton.setOnClickListener(buttonListener);
new AlertDialog.Builder(MainActivity.this, R.style.CustomDialogTheme)
.setTitle("Warning!!!")
.setIcon(R.drawable.dhd_icon)
.setView(exp)
.show();

Оцените статью
TechArks.Ru
Добавить комментарий