从包中检查Null文本,从而生成NullPointer

时间:2012-01-01 22:20:31

标签: android string nullpointerexception bundle

我尝试了很多不同的东西,但我似乎无法摆脱这个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);
    }

1 个答案:

答案 0 :(得分:0)

也许你的b.getString(...)返回null,而不是“”。

在调用trim()之前检查b.getString(...)是否为null。