2016-11-03 4 views
0

У меня есть три мероприятия. На Activity Один (меню навигации), у меня есть простой ClickListener, чтобы начать Activity Два.Рукоятка нескольких намерений по одиночной деятельности

Intent intent3 = new Intent(this, SettingsActivity.class); 
intent3.putExtra("from", "BaseActivity"); 
startActivity(intent3); 
finish(); 
break; 

На Actvity Три у меня есть некоторые данные, которые мне нужно на Activity два. Так что я положил данные внутри Bundle как это:

//send Data to Setting Activity 
Intent mIntent = new Intent(StartActivity.this, SettingsActivity.class); 
Bundle mBundle = new Bundle(); 
mBundle.putString("from", "SettingsActivity"); 
mBundle.putSerializable("spinnerHashTagItems", (Serializable) spinner_HashTagItem); 
mBundle.putSerializable("spinnerUserItem", (Serializable) spinner_UserItem); 
mBundle.putBoolean("isCheckedHashTag", isCheckedHashTag); 
mBundle.putBoolean("isCheckedHashTagUser", isCheckedHashTagUser); 
mBundle.putBoolean("isCheckedAllFromUser", isCheckedAllFromUser); 
mIntent.putExtras(mBundle); 

Так что, если я начну Activity Два я только получаю Intent от первого Activity, но не от третьего:

//get loadet Settings from StartActivity 
Bundle bundle = getIntent().getExtras(); 
if (bundle != null) { 
    //do nothing 
} 

Bundle bundle1 = getIntent().getExtras(); 
spinner_HashTagItems.clear(); 
spinner_HashTagItems = (List<String>) bundle1.getSerializable("spinner_HashTagItem"); 
spinner_userItems.clear(); 
spinner_userItems = (List<String>) bundle1.getSerializable("spinner_userItem"); 
chbox_hashTag.setChecked(bundle1.getBoolean("chbox_hashTag")); 
chbox_hashTagUser.setChecked(bundle1.getBoolean("chbox_hashTagUser")); 
chbox_allFromUser.setChecked(bundle1.getBoolean("chbox_allFromUser")); 

Я пошел с отладчик прорежьте Activity Два и получите Bundle от Activity Один. Как я могу получить Bundle от Activity Три?

+0

где ур 'startActivity (mIntent);'? –

+0

Я не хочу запускать Activity. Мне нужны только данные. Первая активность - это StartActivity, которая загружает настройки при запуске и передает данные в значение SettingActvity (вторая операция). Я не хочу запускать настройки в начале приложения. – dudi

+0

У вас есть данные, которые вы хотите отправить из Activity One через Activity Two для Activity Three, правильно? – vidulaJ

ответ

0

Используйте startActivityForResult (Intent intent, int requestCode), чтобы начать SettingsActivity от StartActivity.

Handle результат в StartActivity:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
if (requestCode == REQUEST_CODE_YOU_USED_TO_START_SETTINGS_ACTIVITY) { 
    if (resultCode == RESULT_OK) { 
     //read the data from the Intent and prepare the Bundle for Activity Two 
    } 
} 
} 

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

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