Как реализовать кнопку отмены в пользовательском диалоге без AlertDialog? - PullRequest
2 голосов
/ 20 марта 2012

я знаю, аналогичные вопросы задавались, и я уже просмотрел все, что мог найти, но не нашел ответа на эту проблему.

Вот код:

    protected Dialog onCreateDialog(int id)
    {
        Dialog dialog = new Dialog(this);
        switch(id)
        {
            case R.layout.database_feed:
                dialog.setContentView(R.layout.database_feed);
                ((Button) dialog.findViewById(R.id.discard_button)).setOnClickListener(
                    new View.OnClickListener() 
                    {
                        //@Override
                        public void onClick(View v) 
                        {
                            //dialog.cancel();
                        }
                    }
                );
                break;
        }
        return dialog;
    }

Я просто хочу закрыть диалог одним нажатием на кнопку R.layout.database_feed. Но у меня нет доступа к диалогу внутри метода onClick. Я действительно чувствую растерянность.

Я не хочу использовать AlertDialog или DialogBuilder, потому что в диалоге есть другие вещи, которые сложно реализовать в AlertDialog или чем-то еще. Кроме того, я уже знаю решение сделать отдельное действие для диалога - но на самом деле я хочу знать, как это работает так, как я пытаюсь здесь. Более того, я уже пытался использовать DialogInterface.OnClickListener (), но я не могу использовать это в setOnClickListener (...) - Метод.

Просто отмена диалога не может быть такой сложной ... но я не понимаю.

Любая подсказка / помощь приветствуется!

Thx

Ответы [ 2 ]

4 голосов
/ 20 марта 2012

Измените

Dialog dialog = new Dialog(this);

на

final Dialog dialog = new Dialog(this);

Затем вы можете получить доступ к диалогу в вашем методе onClick ().

2 голосов
/ 20 марта 2012

Либо сохраните 'dialog' как переменную класса, либо сделайте его финальным в вашем методе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...