Extract.String Null?没运气。

时间:2015-01-02 07:07:14

标签: java android eclipse null

我在这行代码上的状态变量上得到一个nullPointerException:if (view.getId() == R.id.button && status.equals("Dorado")。现在我在这里看了很多线程,我真的很幸运,这个例外。像许多其他人一样,我将一个字符串从活动1传递给活动2,除了这个字符串是在按下时从文本视图中提取的(Dorado)。 活动1:

TextView text = (TextView) view;
        String selection = text.getText().toString();
        Bundle b = new Bundle();
        b.putString("Selection", selection);
        Intent i = new Intent(MunicipioList.this,SubestacionInfo.class);
      i.putExtra("extra", b);
        startActivity(i);

活动2:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_subestacion_info);

    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        extras = extras.getBundle("extra");
        status = extras.getString("Selection");

    }
}

我知道捆绑包不是必需的,我只是在尝试,因为我还在使用其他代码。还有一件事,状态varoable是全局的,在活动开始时声明为" public String status;"所以我不相信这是问题,任何帮助? :)

1 个答案:

答案 0 :(得分:1)

让我们打破这个。如果您在此行中获得NPE:

   if (view.getId() == R.id.button && status.equals("Dorado"))

然后:

  • viewnull
  • R.idnull(我认为这是不可能的)或
  • statusnull

您应该能够使用调试器或添加跟踪图来解决问题。但我怀疑它是status

你说:

  

还有一件事,状态变量是全局的,在活动开始时声明为“公共字符串状态”;所以我不认为这是问题。

该声明不会初始化status。您是否在声明后初始化了status 如果没有,它的初始值将为null,这足以导致NPE ......如果您从未更改过它!