首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Kotlin/android setText中显示带参数的字符串,而不是字符串拼接?

如何在Kotlin/android setText中显示带参数的字符串,而不是字符串拼接?
EN

Stack Overflow用户
提问于 2021-05-03 01:15:14
回答 1查看 32关注 0票数 0

我使用以下代码,使用字符串连接在一个字符串中输出6个双精度值。对我来说很有效,但我猜是糟糕的实践(setText中的字符串连接)。

代码语言:javascript
运行
复制
allUpM_TextView.setText(
"Mass [kg]: %.0f".format(AllUpM) + " Mass/V [kg/m2]: %.3f".format(MperV) +
"\nMax Alt [m]: %.1f".format(Alt) +
"\nTemp [deg C]: %.1f".format(Temp_a) +
"\nPres [mBar]: %.1f".format(Pres_a) +
"\nLift [kg]: %.1f".format(Lift) )

所以我想用一个资源字符串来实现:

代码语言:javascript
运行
复制
 <string name="outputTxt">Mass [kg]: %1$s Mass/V [kg/m2]: %2$s
                        \nMax Alt [m]: %3$s
                        \nTemp [deg C]: %4$s  nPres [mBar]: %5$s
                        \nLift [kg]: %6$s</string>

代码语言:javascript
运行
复制
val string = getString(R.string.outputTxt,
        AllUpM.toString(),
        MperV.toString(),
        Alt.toString(),
        Temp_a.toString(),
        Pres_a.toString(),
        Lift.toString()
        )

allUpM_TextView.setText(string)

双精度输出为全精度。

如何实现"%.1f“或"%.3f”之类的Double格式?

任何人在他们的第一个Android应用程序的帮助后,最后一次编程Fortan在30年前。

EN

回答 1

Stack Overflow用户

发布于 2021-05-03 01:24:05

代码语言:javascript
运行
复制
fun Double.toFormattedString(n : Int) : String {
    return "%.${n}f".format(this).toString() // not tested, maybe toString isn't required
}

这将帮助您获得n位小数(称为扩展函数,如果您以前没有见过该语法的话)

然后在每个double上使用它,而不是调用toString:

代码语言:javascript
运行
复制
val string = getString(R.string.outputTxt,
        AllUpM.toFormattedString(2),
        MperV.toFormattedString(2),
        Alt.toFormattedString(2),
        Temp_a.toFormattedString(2),
        Pres_a.toFormattedString(2),
        Lift.toFormattedString(2)
        )

allUpM_TextView.setText(string)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67359146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档