J'ai un fragment dans lequel j'ai recyclerview et les données de réglage dans ce recyclerview à l'aide de l'adaptateur recyclerview.
Maintenant, j'ai un bouton dans l'élément de liste de l'adaptateur en cliquant sur lequel je dois vérifier l'autorisation READ_EXTERNAL_STORAGE dans Android pour un nouveau modèle d'autorisation dans Android.
J'ai créé une nouvelle fonction dans le fragment de cet adaptateur pour vérifier si l'autorisation est accordée ou non et demander l'autorisation si elle n'est pas déjà accordée.
J'ai passé MyFragment.this en tant que paramètre dans l'adaptateur et en appelant la méthode du fragment sur le bouton cliquez dans l'adaptateur.
J'ai utilisé le code ci-dessous pour appeler requestPermission en fragment.
if(ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED){
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
ConstantVariables.READ_EXTERNAL_STORAGE);
}
J'ai remplacé la onRequestPermissionsResult
méthode dans fragment en utilisant le code ci-dessous:
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case ConstantVariables.READ_EXTERNAL_STORAGE:
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted, proceed to the normal flow.
startImageUploading();
} else {}
Mais il n'est pas appelé, au lieu de l'appel de la méthode onRequestPermissionsResult de cette activité.
J'ai également défini la même méthode onRequestPermissionsResult dans l'activité parent du fragment et elle est appelée.
Je ne peux pas supprimer la méthode onRequestPermissionsResult de l'activité mais je souhaite appeler la méthode onRequestPermissionsResult du fragment lorsque je demande l'autorisation du fragment. Comment puis-je faire ceci? Suis-je en train de faire quelque chose de mal ici, aidez-moi s'il vous plaît si quelqu'un a une idée ici.