2013-11-23 2 views
0

Я пытаюсь создать настраиваемый диалог. Я получаю 2 ошибки компиляции и не понимаю, почему.Попытка создать пользовательский диалог

  1. Метод SetOnClickListner с точкой зрения типа не применяется для аргументов нового OnClikLiatner код:
  2. Methed на Щелчок по типу нового OnClickListener необходим переопределить Supertype

код дает ошибку:

dialogButton.setOnClickListener(new OnClickListener() { // error message 1 here 
         @Override 
         public void onClick(View v) { // error message 2 here 
          dialog.dismiss(); 
         } 
        }); 

Весь код

void StartGame() 
     { 
     // custom dialog 
        final Dialog dialog = new Dialog(cGlobals.MainHome); 
        dialog.setContentView(R.layout.activity_start_play); 
        dialog.setTitle("Title..."); 

        // set the custom dialog components - text, image and button 
        TextView text = (TextView) dialog.findViewById(R.id.text); 
        text.setText("Android custom dialog example!"); 
      //  ImageView image = (ImageView) dialog.findViewById(R.id.image); 
      //  image.setImageResource(R.drawable.ic_launcher); 

        Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK); 
        // if button is clicked, close the custom dialog 
        dialogButton.setOnClickListener(new OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          dialog.dismiss(); 
         } 
        }); 

        dialog.show(); 


     } 
} 

ответ

0

Сначала определите это в верхней

final Context context = this; 

затем изменить

dialogButton.setOnClickListener(new OnClickListener() { // error message 1 hear 
         @Override 
         public void onClick(View v) { // error message 2 hear 
          dialog.dismiss(); 
         } 
        }); 

к этому:

dialogButton.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
       dialog.dismiss(); 
       } 
      }); 

и этот

   final Dialog dialog = new Dialog(cGlobals.MainHome); 

до

   final Dialog dialog = new Dialog(context); 
+0

привет, спасибо, не могли бы вы объяснить исправление? –

+0

добро пожаловать, первое изменение, как вы можете видеть, вам не хватало представления. Вы должны объявить, где вы хотите прослушивать клики? поэтому мы хотели этого в представлении. –

+0

Во-вторых, я не уверен, что у вас cGlobals.MainHome, но когда вы создаете что-то новое, вы всегда должны создавать его в текущей деятельности, которую мы заменили контекстом (это) –

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