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

Kotlin安卓应用跳转详情Activity后布局空白且报无适配器错误求助

问题排查与解决方案

先解决"No adapters attached, skipping layout"报错

虽然你说详情页没使用RecyclerView,但这个错误肯定是布局中存在未绑定适配器的RecyclerView导致的,按以下步骤排查:

  • 打开DetailUserActivity对应的布局文件(如activity_detail_user.xml),全局搜索<RecyclerView>标签,检查是否是直接写在布局里,或是通过<include>标签引入的子布局里包含了RecyclerView。
  • 如果找到多余的RecyclerView,直接删除即可;如果是必须保留但暂时不需要加载数据的,给它绑定一个空适配器:
// 在DetailUserActivity的onCreate中添加
RecyclerView targetRecyclerView = findViewById(R.id.your_recycler_id);
targetRecyclerView.setAdapter(new RecyclerView.Adapter<RecyclerView.ViewHolder>() {
    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new RecyclerView.ViewHolder(new View(parent.getContext())) {};
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {}

    @Override
    public int getItemCount() {
        return 0;
    }
});

再解决详情页无内容的问题

结合报错来看,大概率是数据传递或UI初始化出了问题,按以下步骤排查:

  1. 检查数据传递一致性
    确认MainActivity跳转时Intent.putExtra的key,和DetailUserActivity中getIntent().getXXX的key完全一致,比如:
    // MainActivity跳转代码示例
    Intent intent = new Intent(this, DetailUserActivity.class);
    intent.putExtra("USER_ID", user.getId());
    startActivity(intent);
    
    // DetailUserActivity接收代码示例
    long userId = getIntent().getLongExtra("USER_ID", -1);
    // 打印日志确认是否拿到有效数据
    Log.d("DetailDebug", "Received user ID: " + userId);
    
  2. 检查控件初始化
    确认DetailUserActivity中findViewById的ID和布局文件中控件的ID完全匹配,没有拼写错误,也没有漏初始化需要显示的控件。
  3. 检查异步更新UI时机
    如果是跳转后再调用Github API获取详情数据,要确保在数据回调后,通过runOnUiThread更新UI控件,避免在子线程操作UI。

辅助排查技巧

查看Logcat的完整错误栈信息,里面会明确标注报错的布局文件路径和RecyclerView所在的层级,能快速定位到问题所在。

内容的提问来源于stack exchange,提问作者Bryant Anthony

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:30:13