我有一个片段,其中我有RecolyerView和使用RecolyerView适配器在这个RecolyerView中设置数据。
现在,我在适配器的列表项中有一个按钮,单击该按钮,我需要检查android中的READ_EXTERNAL_STORAGE权限,以获取android中的新权限模型。
我在这个适配器的片段中创建了一个新函数来检查权限是否被授予,如果还没有授予,则请求权限。
我已经使用下面的代码在片段中调用了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方法,但希望在向Fragment请求权限时调用Fragment的onRequestPermissionsResult方法。我怎么能这么做?我是不是做错了什么,如果有什么人在这里有想法,请帮助我。
编辑过的回答涵盖了更广泛的问题
我认为你混淆了碎片和活动的方法。上个月我的项目也有类似的问题。请检查您是否有以下内容:
OnRequestPermissionsResult
调用Super.OnRequestPermissionsResult
。在我的非活动类中,我请求了一个Fine location权限,但回调onRequestPermissionsResult“永远不会被调用”。现在我看到了一些与此相关的问题,但他们都认为请求是从活动或片段发出的,没有人考虑从非活动类发出请求。这是我的代码 这是onRequestPermissionResultCallback方法的实现 解决了:正如一些人提到的“activity”的onRequest
我有一个片段,其中有recyclerview,并使用recyclerview适配器在这个recyclerview中设置数据。 现在,我在适配器的列表项中单击了一个按钮,我需要检查android中的READ\u EXTERNAL\u STORAGE权限,以查看android中的新权限模型。 我在这个适配器的片段中创建了一个新函数,用于检查是否授予了权限,如果尚未授予权限,则请求权限。 我已经通过了我
下面的代码在活动中运行良好,但我不能使它在片段中工作。 从不调用。
我想在收到一些HTTP请求的响应后,更新几个<code>片段 。-- 活动 适配器 碎片样本 日志显示位置0,1处的片段的<code>updateData</code>工作良好。但是对于位置2处的片段,它会导致错误。 我发现的区别是适配器没有为位置2调用,这意味着没有调用的。因此不存在。 我的直觉告诉我,问题一定来自适配器的工作流或fragmentManager事务。但是作为一个Android初学
有一个调用。调用但从不调用,它是在中编写的。 代码: 代码:
亲活性 这意味着,onActivityResult()将在作为该子片段的父片段的片段内部调用refresh。作为连锁反应,refreshDeliveryFragment()将调用这两个子片段中的一个子片段来刷新它们的recyclerview数据。