2016-07-07 1 views
-1

Je suis en train de mettre en œuvre la méthode d'autorisation sur un de mon menu dans l'application Android, mais son erreur me donner comme ci-dessousContextCompat est pas applicable pour les arguments

La méthode checkSelfPermission (contexte, String) dans le type ContextCompat n'est pas applicable pour les arguments (nouveau BottomSheetListener() {}, String)

pour ce menu Mon code est comme ci-dessous

else if(menuItem.getItemId() == R.id.save_image) { 

    int gpermission = ContextCompat.checkSelfPermission(this, 
      Manifest.permission.CAMERA); 

    if (gpermission != PackageManager.PERMISSION_GRANTED) { 
     makeRequest1(); 
    } else { 
     saveQuote(); 
    } 
} 

S'il vous plaît vérifier et laissez-moi savoir si quelqu'un peut me aider :)

+0

Si ce code est dans une classe d'activité, écrivez: 'YourActivity.this' au lieu de' this', sinon récupérez le contexte du parent Activité –

+0

Cela fonctionne bien :) –

Répondre

3

Si ce code est dans une classe d'activité, écrire:

YourActivity.this 

au lieu de this, sinon obtenir le contexte de l'activité mère et de l'utiliser.

+0

Génial et fonctionne bien :) –

2

Au lieu de:

int gpermission = ContextCompat.checkSelfPermission(this, 
          Manifest.permission.CAMERA); 

écrire ceci:

int gpermission = ContextCompat.checkSelfPermission(this.getContext(), 
          Manifest.permission.CAMERA); 

Vous faites référence BottomSheetListener et vous devez faire référence à Context. Dans le constructeur de BottomSheetListener, passez un Context de Activity ou BottomSheet et écrivez une fonction getContext() retournant cet objet de contexte.

+0

Maintenant, je reçois une erreur comme "La méthode getContext() est indéfini pour le type nouveau BottomSheetListener() {} " –

+0

Ceci est correct, il peut également dépendre de l'endroit où le code qui appelle ContextCompat.checkSelfPermission() est appelé. Dans le contexte d'une activité, le mot clé 'this' devrait techniquement fonctionner. –

+0

@Rajubhai Rathod Lisez la dernière phrase de ma réponse. –