Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中跨活动发送变量时,putExtra允许将变量设置为null_Java_Android_Android Activity_Android Fragments_Nullpointerexception - Fatal编程技术网

Java 在Android中跨活动发送变量时,putExtra允许将变量设置为null

Java 在Android中跨活动发送变量时,putExtra允许将变量设置为null,java,android,android-activity,android-fragments,nullpointerexception,Java,Android,Android Activity,Android Fragments,Nullpointerexception,为了将变量从片段发送到活动,我使用了putExtra和extras.getString。然而,我发现在使用Log.e检查值时,由于我传递的变量变为=null,所以得到了一个NullPointerException。这发生在我开始活动之后 那么我如何防止这种情况发生呢。从而保持变量的值 片段代码: Integer IDPasser; Intent intent = new Intent(getActivity(), ArticleViewer.class); IDPasse

为了将变量从片段发送到活动,我使用了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.
            }
活动代码:

    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.
            }

我建议将IDPasser设置为int而不是整数,以避免混淆额外数据是作为on对象传递还是作为int传递。我认为您可能会遇到一个问题,即您在技术上将值插入为putExtra(…可序列化),并希望通过extras.getInt(…)将其导出

然后:


片段
代码很好。在
活动中

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

getIntExtra()
中的第二个参数是默认值,如果
int
额外值对应于键
“ArticleID”
找不到。

字符串名称是什么?由于我不确定您所说的引用部分可能会混淆,您能否提供一个示例。对于此行:Integer IDPasser=getIntent().getInt(“ArticleID”);我得到一个错误:“方法getInt(String)对于类型Intent“on”.getInt未定义。请再次查看我的答案:
getIntExtra()
,而不是
getInt()