数字格式不考虑区域设置。考虑使用String.format而不是android studio

时间:2015-10-10 07:06:48

标签: android android-studio string.format

Here是我的问题及其解决此问题的方法..

Em尝试在不同活动之间传递textview值,并且遇到问题。当我执行代码时,应用程序在打开StudentActivity时崩溃,但随后显示正确的结果......代码是

LoginActivity.java

    int a = Integer.parseInt(textView.getText().toString());
    Intent i = new Intent(LoginActivity.this, StudentActivity.class);
    i.putExtra("level", a);
    startActivity(i);

StudentActivity.java

      textView.setText(Integer.toString(getIntent().getExtras().getInt("level")));

IN studentActivity,Integer.toString(getIntent()。getExtras()。getInt(“level”))=>此行表示数字格式不考虑区域设置。请考虑使用String.format。请建议一些代码.. 任何帮助都会得到真正的赞赏!!

4 个答案:

答案 0 :(得分:7)

关于警告:

“数字格式不考虑区域设置。考虑使用String.format而不是android studio”,

这是一个名为“TextView Internationalization”的Lint警告,其中说:

  

调用TextView时#setText *从不调用Number#toString()进行格式化   数;它不会处理分数分隔符和特定于语言环境   数字正确。考虑使用具有适当格式的String#格式   规格(%d或%f)代替。

所以你应该写:

 textView.setText(String.format("%d", getIntent().getExtras().getInt("level"))));

答案 1 :(得分:1)

在你LoginActivity中,你插入了字符串!将“a”命名为Intent。

在你的StudentActivity中,你试图抓住整数!感谢致电getInt()

只需将整行改为

即可
textView.setText(getIntent().getExtras().getString("level"));

答案 2 :(得分:1)

我用过:

textView.setText(getIntent().getExtras().getString("level"));

但仍然有一些警告; 当我使用它时:

textView.setText(Locale.getDefault(), getIntent().getExtras().getString("level"));

没关系;

答案 3 :(得分:1)

使用

textView.setText(String.format(Locale.getDefault(), "%d", your_int));

将自动使用正确的语言环境