Подтвердить что ты не робот

AlertDialog внутри onClickListener

Я пытаюсь запустить AlertDialog из onClickListener, но я получаю следующую ошибку.

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

Кто-нибудь знает, как это исправить?

        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();
        }
    });
4b9b3361

Ответ 1

Измените эту строку

new AlertDialog.Builder( this );

к

new AlertDialog.Builder( YourActivity.this );

Это потому, что конструктору нужен тип Контекста и OnclickListner is not a Context type, поэтому вы используете объект своей деятельности.

Надеюсь, это поможет.

Ответ 2

В new AlertDialog.Builder( this ), this относится к слушателю, а не к экземпляру внешнего класса.