要将变量从Fragment发送到Activity,我使用了putExtra和extras.getString。但是,我发现在使用Log.e来检查值时由于传递变量= null而导致出现NullPointerException。我开始活动后会发生这种情况。

因此,我如何防止这种情况发生。从而保持变量的值。

片段代码:

    Integer IDPasser;
    Intent intent = new Intent(getActivity(), ArticleViewer.class);
    IDPasser =  (Integer) data.ArticleID.toArray()[position];
    intent.putExtra("ArticleID",IDPasser);
    Log.e("Passer", IDPasser.toString()); //Shows that value is not = null.
    startActivity(intent);


活动代码:

    Bundle extras = getIntent().getExtras();
      if (extras != null) {

             Integer IDPasser = extras.getInt("ArticleID");
             Log.e("TESTER", IDPasser.toString()); //NullPointerException due to IDPasser becoming = null.
            }

最佳答案

Fragment代码很好。在Activity中:

 int idPasser = getIntent().getIntExtra("ArticleID", 0);


getIntExtra()中的第二个参数是默认值,如果未找到与键int对应的"ArticleID"附加字符,则返回默认值。

07-24 20:44