Java 如何修复执行setText()时的致命错误
当我执行onClick方法时,应用程序崩溃。问题似乎出在setText funntion上 我已将问题缩小到给定的代码: 检测到的代码中没有语法错误 爪哇:Java 如何修复执行setText()时的致命错误,java,android,android-studio,Java,Android,Android Studio,当我执行onClick方法时,应用程序崩溃。问题似乎出在setText funntion上 我已将问题缩小到给定的代码: 检测到的代码中没有语法错误 爪哇: 我认为您作为tipAmount和Total传递的内容存在类型问题,因为您的字符串格式化程序%1$d期望int而不是double或其他类型。首先,尝试使用Log打印它们 这将起作用 tip.setText(getResources().getString(R.string.Tip_Amount, 100)); showTotal.setTex
我认为您作为
tipAmount
和Total
传递的内容存在类型问题,因为您的字符串格式化程序%1$d
期望int而不是double或其他类型。首先,尝试使用Log
打印它们
这将起作用
tip.setText(getResources().getString(R.string.Tip_Amount, 100));
showTotal.setText(getResources().getString(R.string.Total_Amount, 1000));
这行不通
tip.setText(getResources().getString(R.string.Tip_Amount, 100.00))
showTotal.setText(getResources().getString(R.string.Total_Amount, 1000.00));
请按照链接了解有关字符串格式的更多信息我认为您作为
tipAmount
和Total
传递的内容存在类型问题,因为您的字符串格式设置程序%1$d
需要int而不是double或其他类型。首先,尝试使用Log
打印它们
这将起作用
tip.setText(getResources().getString(R.string.Tip_Amount, 100));
showTotal.setText(getResources().getString(R.string.Total_Amount, 1000));
这行不通
tip.setText(getResources().getString(R.string.Tip_Amount, 100.00))
showTotal.setText(getResources().getString(R.string.Total_Amount, 1000.00));
请按照链接了解有关字符串格式的详细信息,您在strings.xml的
%1$d
中使用了d
,因此它需要一个整数。但是,您正在发送一个double,因此会发生错误。由于需要小数部分,use可以使用f
而不是d
,并更新strings.xml,如下所示:
<string name="Tip_Amount">Tip: %1$.2f</string>
<string name="Total_Amount">Total: %1$.2f</string>
提示:%1$.2f
总计:%1$.2f
这样你也会得到一个很好的表示,点后两位数。顺便说一下,我建议对货币使用BigDecimal。您在strings.xml的
%1$d
中使用了d
,因此它需要一个整数。但是,您正在发送一个double,因此会发生错误。由于需要小数部分,use可以使用f
而不是d
,并更新strings.xml,如下所示:
<string name="Tip_Amount">Tip: %1$.2f</string>
<string name="Total_Amount">Total: %1$.2f</string>
提示:%1$.2f
总计:%1$.2f
这样你也会得到一个很好的表示,点后两位数。顺便说一句,我建议对货币使用BigDecimal。发布您的
logcat/stacktrace
请编辑,提前谢谢您可以发布您的活动代码吗?我认为您可能没有初始化视图
可能是那些提示
,showTotal
中的一个,您还有原因:java.util.IllegalFormatConversionException:d!=java.lang.Double
这意味着一些不正确的对话。发布您的完整活动代码,并准确显示哪一行代码有异常。不,我肯定有这些代码,但我发布了方法发布您的logcat/stacktrace
请提交,提前谢谢您可以发布您的活动代码吗?我认为您可能没有初始化视图
可能是那些提示
,showTotal
中的一个,您还有原因:java.util.IllegalFormatConversionException:d!=java.lang.Double
这意味着一些不正确的对话。发布活动的完整代码,并准确显示哪行代码有异常。不,我肯定有,但我发布了方法