2012-01-11 3 views
13

Sto provando ad avviare un AlertDialog da un onClickListener ma sto ricevendo il seguente errore.AlertDialog inside onClickListener

The constructor AlertDialog.Builder(new View.OnClickListener(){}) is undefined 

Qualcuno sa come risolvere questo problema?

 mRecordButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      new AlertDialog.Builder(this) 
      .setTitle("Cast Recording") 
      .setMessage("Now recording your message") 
      .setPositiveButton("Save", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        Log.d("AlertDialog", "Positive"); 
       } 
      }) 
      .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        Log.d("AlertDialog", "Negative"); 
       } 
      }) 
      .show(); 
     } 
    }); 

risposta

29

Modificare questa linea

new AlertDialog.Builder(this); 

a

new AlertDialog.Builder(YourActivity.this); 

Questo perché il costruttore ha bisogno di un tipo di contesto & OnclickListner is not a Context type in modo da utilizzare l'oggetto della vostra attività.

Spero che aiuta ..

0

In new AlertDialog.Builder(this), this si riferisce l'ascoltatore, non è l'istanza della classe esterna.