У мене є фрагмент, в якому я рециркулятор і перегляд даних у цьому recilerview за допомогою адаптера recilerview.
Тепер у мене з’являється кнопка в списку перехідника адаптера, натискаючи на яку мені потрібно перевірити дозвіл READ_EXTERNAL_STORAGE в android на наявність нової моделі дозволів в android.
Я створив нову функцію в фрагменті цього адаптера, щоб перевірити, чи надано дозвіл чи ні, і запитати дозвіл, якщо він ще не наданий.
Я передав MyFragment.this як параметр в адаптері і викликав метод фрагмента при натисканні кнопки в адаптері.
Я використовував наведений нижче код для виклику requestPermission у фрагменті.
if(ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED){
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
ConstantVariables.READ_EXTERNAL_STORAGE);
}
Я змінив onRequestPermissionsResult
метод у фрагменті, використовуючи наведений нижче код:
@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 {}
Але це не викликається, замість цього методу onRequestPermissionsResult цієї активності викликається.
Я визначав той самий метод onRequestPermissionsResult у батьківській діяльності фрагмента, і він стає викликом.
Я не можу видалити метод onRequestPermissionsResult діяльності, але хочу викликати метод onRequestPermissionsResult фрагмента, коли я вимагаю дозволу на фрагмент. Як я можу це зробити? Я щось тут роблю не так, будь ласка, допоможіть мені, якщо хтось тут має ідею.