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

如何修复跳转BookDetailActivity时出现的java.lang.NumberFormatException错误

解决点击RecyclerView条目后崩溃的NumberFormatException问题

嘿,我帮你定位到崩溃的核心原因了——不是数据传递的代码出问题,而是BookDetailActivity的布局文件里有个约束属性设置错误。

错误分析

从Logcat的错误栈能看到,崩溃是因为系统尝试把"16.0dip"转换成float时失败了,追踪到的位置是ConstraintLayout$LayoutParams的初始化。看你的book_detail.xml,问题出在ID为textView6的TextView上:

你给它设置了:

app:layout_constraintHorizontal_bias="@dimen/standard_margin"

但layout_constraintHorizontal_bias这个属性的要求是0到1之间的浮点值(比如0.0是左对齐,0.5是居中,1.0是右对齐),而你引用的@dimen/standard_margin是16dp,系统无法把带单位的尺寸转换成bias需要的比例值,所以抛出了NumberFormatException。

修复方案

直接修改textView6的bias属性,二选一即可:

  • 如果你想让这个TextView水平居中,把bias改成0.5:
    app:layout_constraintHorizontal_bias="0.5"
    
  • 或者因为你已经设置了app:layout_constraintStart_toStartOf="parent"和app:layout_constraintEnd_toEndOf="parent",默认就是居中状态,直接删掉这行bias属性也可以。

修改后的textView6代码示例:

<TextView
    android:id="@+id/textView6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="16sp"
    android:layout_marginStart="@dimen/standard_margin"
    android:layout_marginTop="@dimen/standard_margin"
    android:layout_marginEnd="@dimen/standard_margin"
    android:text="@string/tv_detail"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/imgCover" />

额外注意事项(确保数据传递正常)

虽然这次崩溃和数据传递无关,但为了后续能正常把Book对象传给BookDetailActivity,还要确认两点:

  • Book类必须正确实现Parcelable接口(因为你使用了getParcelableExtra来获取数据)
  • 检查BooksAdapter里的Intent目标Activity:你写的是new Intent(v.getContext(), BookDetail.class),但你的Activity类名是BookDetailActivity,如果是笔误要修正,确保类名一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:46:10