Android工作室奇怪警告

Android studio strange warning

我是 Android Studio 中的新手,当我在如下文本中设置整数时:

textview.setText(String.format("%d",1));

这段代码给我一个警告:

Implicitly using the default locale is a common source of bugs: Use String.format (Locale,...)

将整数放入 .setText 的正确代码是什么?

我在 Whosebug 上提出了更多问题,但不适用于此。

What is the correct code for put an integer in a .setText?

您只需要将您的 int 转换为 String,您可以使用 Integer.toString(int) 来达到这个目的。

你的代码应该是:

textview.setText(Integer.toString(myInt));

如果你想设置一个固定值只需使用相应的String文字.

所以这里你的代码可以简单地是:

textview.setText("1");

您收到此警告是因为 String.format(String format, Object... args) 将为您的 Java Virtual Machine 实例使用 默认区域设置 ,这可能会导致行为根据所选格式发生变化因为您最终可能会依赖格式区域设置。

例如,如果您只是在格式中添加逗号以包含分组字符,结果现在取决于区域设置,如您在本例中所见:

System.out.println(String.format(Locale.FRANCE, "10000 for FR is %,d", 10_000));
System.out.println(String.format(Locale.US, "10000 for US is %,d", 10_000));

输出:

10000 for FR is 10 000
10000 for US is 10,000