我尝试了很多不同的东西,但我似乎无法摆脱这个nullpointer。我有一个应用程序,用户必须在三个EditTexts中输入文本,然后按下提交按钮。我想处理这样一个事实:如果用户没有输入任何数据而只按下提交,当调用所有计算完成的类时,我可以显示一个toast,然后使用intent返回main。 然而,它不会工作,如果永远不会被看到......
这是代码
Bundle b = getIntent().getExtras();//the bundle is retrieved from the intent
int id = b.getInt("ID");//retreive the ID to know which function to call
int nullCounter=0;
if (b.getString("vf").trim().equals(""))
nullCounter++;
else if (!b.getString("vf").trim().equals(""))//checks each possibility that could have been included in the bundle
vf = Double.parseDouble(b.getString("vf"));//if the value exists, extract it and convert it to an integer
if (b.getString("t").trim().equals(""))
nullCounter++;
else if (!b.getString("t").trim().equals(""))
t = Double.parseDouble(b.getString("t"));
if (b.getString("d").trim().equals(""))
nullCounter++;
else if (!b.getString("d").trim().equals(""))
d = Double.parseDouble(b.getString("d"));
if (b.getString("a").trim().equals(""))
nullCounter++;
else if (!b.getString("a").trim().equals(""))
a = Double.parseDouble(b.getString("a"));
if (b.getString("v1").trim().equals(""))
nullCounter++;
else if (!b.getString("v1").trim().equals(""))
v1 = Double.parseDouble(b.getString("v1"));
if(nullCounter >2)
{
Intent i = new Intent(Results.this,PhysicsCalculatorActivity.class);
Results.this.startActivity(i);
}
答案 0 :(得分:0)
也许你的b.getString(...)返回null,而不是“”。
在调用trim()之前检查b.getString(...)是否为null。