Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.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
Android 通过意图传递数据_Android_Android Intent - Fatal编程技术网

Android 通过意图传递数据

Android 通过意图传递数据,android,android-intent,Android,Android Intent,从我的main活动检索数据到我的第二个活动时,我总是得到一个java.lang.NullPointerException 这来自我的main活动: Intent i = new Intent(MainActivity.this,ScanActivity.class); i.putExtra("isConnected", String.valueOf(isConnected)); i.putExtra("serverIP", serverIP); startActivity(i); 这里是我得到

从我的
main活动
检索数据到我的第二个
活动
时,我总是得到一个
java.lang.NullPointerException

这来自我的
main活动

Intent i = new Intent(MainActivity.this,ScanActivity.class);
i.putExtra("isConnected", String.valueOf(isConnected));
i.putExtra("serverIP", serverIP);
startActivity(i);
这里是我得到的
NullPointerException

Intent extras = getIntent();
public String isConnected = extras.getStringExtra("isConnected");
public String serverIP = extras.getStringExtra("serverIP");

我的代码是错误的还是有其他原因导致它为
null

在实例化
SecondActivity
之前,您无法获得
Intent
。这就是NPE的原因。将代码移到
SecondActivity
onCreate()方法体中

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_layout);

    Intent extras = getIntent();
    String isConnected = extras.getStringExtra("isConnected");
    String serverIP = extras.getStringExtra("serverIP");
}

您应该在辅助活动中使用此选项

Bundle bundle = getIntent().getExtras();
if(bundle != null){
 String serverIp = bundle.getString("serverIP);
}

您应该首先对其进行条件设置以避免空指针,希望它能起作用。

您是在第二个
活动的
onCreate()方法之外进行此操作的吗?
是的。这就是原因吗?很可能是。你的第二段代码具体在哪里?在什么方法中,何时调用该方法?您是否非常确定您的已断开连接的服务器IP中包含数据?这不是答案。您可以使用方便的方法来避免获取捆绑包,它们会为您执行空检查。我明白了,我的错。我还是个新手。没什么大不了的,我们有时都会给出错误的答案。你的代码运行得很好,但是如果他在正确的地方做了,他也会这么做。是的,他应该把它放在oncreate中