2016-07-04 5 views
1

Как указано выше, почему?Почему getExtra() из Bundle имеет значение null, но если у пакета mMap это значение?

code screenshot which describes this

Передача данных в другой деятельности:

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); 
} 
+0

использование intent.putParcelableArrayListExtra ("loginData", loginModel.getUserData()); –

+0

Что такое UserData? Пользовательский объект? Массив? – Zimm1

+0

Правильно ли вы выполняете посылку по объекту userdata? Опубликовать объектный код plz – Memme

ответ

0

Шаг 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"); 
1

если вы ставите

intent.putExtra("accessKey", loginModel.getAccessKey()); 

затем получить его bundle.getString("accessKey");

0

Когда вы проходите intent.putExtra(); , тогда вы получаете данные .getString(); , а также если вы хотите проверить нуль затем проверить, ниже код:

Bundle bundle = getIntent().getExtras(); 
if (bundle != null && bundle.getString("accessKey") != null) { 

}

0

Если UserData является пользовательский объект, вы можете использовать Gson для преобразования объекта в JSONObject и передать его на пачке ,

В первой активность

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); 

В Второй активность

String jsonLoginData; 
Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
    jsonLoginData = extras.getString("loginData"); 
} 
UserData loginData = new Gson().fromJson(jsonLoginData, UserData.class); 

 Смежные вопросы

  • Нет связанных вопросов^_^