Ho un frammento in cui ho recyclerview e impostazione dei dati in questo recyclerview utilizzando l'adattatore recyclerview.
Ora, sto avendo un pulsante nella voce di elenco dell'adattatore facendo clic sul quale devo controllare l'autorizzazione READ_EXTERNAL_STORAGE in Android per un nuovo modello di autorizzazione in Android.
Ho creato una nuova funzione nel frammento di questo adattatore per verificare se l'autorizzazione è concessa o meno e richiedere l'autorizzazione se non già concessa.
Ho passato MyFragment.this come parametro nell'adattatore e chiamando il metodo del frammento sul pulsante clicca nell'adattatore.
Ho usato il seguente codice per chiamare requestPermission in frammento.
if(ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED){
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
ConstantVariables.READ_EXTERNAL_STORAGE);
}
Ho ignorato il onRequestPermissionsResult
metodo in frammento usando il codice seguente:
@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 {}
Ma non viene chiamato, invece del metodo onRequestPermissionsResult di questa attività viene chiamato.
Ho definito lo stesso metodo onRequestPermissionsResult anche nell'attività padre del frammento e viene chiamato.
Non riesco a rimuovere il metodo onRequestPermissionsResult dell'attività ma desidero chiamare il metodo onRequestPermissionsResult del frammento quando richiedo l'autorizzazione dal frammento. Come posso fare questo? Sto facendo qualcosa di sbagliato qui, per favore aiutami se qualcuno ha idea qui.