为什么 bundle 中的 getExtra() 为 null 而 bundle mMap 已获得此值?
Why getExtra() from Bundle is null when but bundle mMap has got this value?
如上问题,为什么?
code screenshot which describes this
向其他人发送数据activity:
private void replaceActivity(LoginModel loginModel) {
Context context = activity.getApplicationContext();
Intent intent = new Intent(context, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("accessKey", loginModel.getAccessKey());
intent.putExtra("loginData", loginModel.getUserData());
context.startActivity(intent);
activity.overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
}
如果你要放
intent.putExtra("accessKey", loginModel.getAccessKey());
然后通过bundle.getString("accessKey");
获取
第 1 步:在意图中传递数据
private void replaceActivity(LoginModel loginModel) {
Context context = activity.getApplicationContext();
Intent intent = new Intent(context, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("accessKey", loginModel.getAccessKey());
intent.putExtra("loginData", loginModel.getUserData());
context.startActivity(intent);
activity.overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
}
第 2 步:在 MainActivity 中获取数据
String accessKey = getIntent().getStringExtra("accessKey");
UserData userData = getIntent.getParcelableArrayExtra("loginData");
当你通过 intent.putExtra();
然后你得到数据 .getString();
如果你想检查 null 然后通过下面的代码检查:
Bundle bundle = getIntent().getExtras();
if (bundle != null && bundle.getString("accessKey") != null) {
}
如果 UserData 是自定义对象,您可以使用 Gson 将对象转换为 JSONObject 并将其传递到 bundle。
第一Activity
Intent activity = new Intent(context, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("accessKey", loginModel.getAccessKey());
activity.putExtra("loginData",
new Gson().toJson(loginModel.getUserData()));
startActivity(activity);
秒Activity
String jsonLoginData;
Bundle extras = getIntent().getExtras();
if (extras != null) {
jsonLoginData = extras.getString("loginData");
}
UserData loginData = new Gson().fromJson(jsonLoginData, UserData.class);
如上问题,为什么?
code screenshot which describes this
向其他人发送数据activity:
private void replaceActivity(LoginModel loginModel) {
Context context = activity.getApplicationContext();
Intent intent = new Intent(context, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("accessKey", loginModel.getAccessKey());
intent.putExtra("loginData", loginModel.getUserData());
context.startActivity(intent);
activity.overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
}
如果你要放
intent.putExtra("accessKey", loginModel.getAccessKey());
然后通过bundle.getString("accessKey");
第 1 步:在意图中传递数据
private void replaceActivity(LoginModel loginModel) {
Context context = activity.getApplicationContext();
Intent intent = new Intent(context, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("accessKey", loginModel.getAccessKey());
intent.putExtra("loginData", loginModel.getUserData());
context.startActivity(intent);
activity.overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
}
第 2 步:在 MainActivity 中获取数据
String accessKey = getIntent().getStringExtra("accessKey");
UserData userData = getIntent.getParcelableArrayExtra("loginData");
当你通过 intent.putExtra(); 然后你得到数据 .getString(); 如果你想检查 null 然后通过下面的代码检查:
Bundle bundle = getIntent().getExtras();
if (bundle != null && bundle.getString("accessKey") != null) {
}
如果 UserData 是自定义对象,您可以使用 Gson 将对象转换为 JSONObject 并将其传递到 bundle。
第一Activity
Intent activity = new Intent(context, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("accessKey", loginModel.getAccessKey());
activity.putExtra("loginData",
new Gson().toJson(loginModel.getUserData()));
startActivity(activity);
秒Activity
String jsonLoginData;
Bundle extras = getIntent().getExtras();
if (extras != null) {
jsonLoginData = extras.getString("loginData");
}
UserData loginData = new Gson().fromJson(jsonLoginData, UserData.class);