You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行时权限校验后RecyclerView数据无法显示的问题咨询

权限授予后RecyclerView数据不显示问题修复

核心问题分析

你的代码里checkPermissions函数的else分支存在逻辑错误:当权限已经授予时,代码仅引用了requestMultiplePermissions对象,没有执行任何实际加载数据的操作,导致getMusicList()不会被调用,RecyclerView自然没有数据可展示。

代码修复

首先修正checkPermissions函数,确保权限已授予时直接触发数据加载:

private fun checkPermissions(){
    context?.let { ctx ->
        if (ContextCompat.checkSelfPermission(ctx, READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            requestMultiplePermissions.launch(arrayOf(READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE))
        } else {
            // 权限已授予,直接加载音乐列表
            getMusicList()
        }
    }
}

额外检查点

  • RecyclerView与Adapter状态:确认getMusicList()执行完成后,已将数据传递给RecyclerView的Adapter,并且调用了adapter.notifyDataSetChanged()(或使用DiffUtil、LiveData等方式更新UI)。
  • 布局有效性:检查RecyclerView的布局参数,确保其高度设置为match_parent或具体数值,避免因布局折叠导致数据不可见。
  • 权限适配(可选):针对Android 13及以上版本,WRITE_EXTERNAL_STORAGE权限已不再需要,可移除该权限请求,仅保留READ_MEDIA_AUDIO(针对音频文件)。

内容的提问来源于stack exchange,提问作者Rishail Siddiqui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 17:05:23