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。请建议一些代码.. 任何帮助都会得到真正的赞赏!!
答案 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));
将自动使用正确的语言环境