0

У меня немного странная ситуация. У меня есть настраиваемый диалог, который открывается при нажатии кнопки из действия. Пользовательский диалог содержит кнопку закрытия, которая при нажатии закрывает диалоговое окно и возвращает пользователя к активности. Когда я запускаю код, как он есть (показано ниже), вместо запуска пользовательского диалога он переходит к основному действию (я думаю, что он снова открывает приложение или каким-то образом создает воображаемое намерение для основного действия). Однако, когда я удаляю/комментирую код для кнопки закрытия, выделенной как // === этот код, все работает отлично (открывается пользовательский диалог), но кнопка закрытия не работает. Я не уверен, что мне не хватает.Пользовательский диалог не работает с установкой студии setOnClickListener

// Global variable 
    Button openDialog; 

    // ====== 
    openDialog = (Button) findViewById(R.id.opendialog); 
    openDialog.setOnClickListener(new Button.OnClickListener() { 
     public void onClick(View v) { 

      final Dialog cusomDialog = new Dialog(sellActivity.this); 
      cusomDialog.setContentView(R.layout.customdialog); 


      // === This code 
      final Button close = (Button) findViewById(R.id.close); 
      close.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         cusomDialog.dismiss(); 

        } 
       }); 
      // === This code 

      cusomDialog.show(); 


     } 
    }); 

Может кто-то пролить свет на это, так как я действительно смущен.

+0

Почему downvote, я сделал что-то не так? – SumOne

+0

проверить ответ – W4R10CK

+0

также вы можете перейти по этой ссылке https://www.mkyong.com/android/android-custom-dialog-example/ –

ответ

2

Инициализировать ваш взгляд Dialog внутри Dialog:

Заменить это:

final Button close = (Button) findViewById(R.id.close); 

С этим:

final Button close = (Button) cusomDialog.findViewById(R.id.close); 
3

Сначала вы должны пройти cusomDialog Просмотреть объект.

Во-вторых, Диалог Неверный метод создания и вызова.

final Button close = (Button)cusomDialog.findViewById(R.id.close); 
     close.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        cusomDialog.dismiss(); 

       } 
      }); 

Такая же проблема

openDialog = (Button)cusomDialog.findViewById(R.id.opendialog); //Rectified 

Вы должны прочитать Custom Dialog для получения дополнительной информации.

0

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

final Dialog cusomDialog = new Dialog(sellActivity.this); 
View view = LayoutInflater.fromContext(sellActivity.this).inflate(R.layout.customdialog,false); 
cusomDialog.setContentView(view); 
Button close = (Button) view.findViewById(R.id.close); 

Удачи !!

 Смежные вопросы

  • Нет связанных вопросов^_^