Я пытаюсь отправить пакет из одной активности в другую. Когда я загружаю связку в процессе записи, вся информация кажется нулевой. Вот код:Android Как отправить Bundle на другую работу?
BaseActivity.java
private final DrawerLayout.DrawerListener mDrawerListener = new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
if (mDrawerToggle != null) mDrawerToggle.onDrawerSlide(drawerView, slideOffset);
}
@Override
public void onDrawerOpened(View drawerView) {
if (mDrawerToggle != null) {
mDrawerToggle.onDrawerOpened(drawerView);
}
if (getSupportActionBar() != null) getSupportActionBar().setTitle(R.string.app_name);
}
@Override
public void onDrawerClosed(View drawerView) { // 사이드 바에서 선택한 리스트 동작
if (mDrawerToggle != null) mDrawerToggle.onDrawerClosed(drawerView);
if (mItemToOpenWhenDrawerCloses >= 0) {
Bundle extras = ActivityOptions.makeCustomAnimation(
BaseActivity.this, R.anim.fade_in, R.anim.fade_out).toBundle();
Bundle mediaExtras = new Bundle();
Class activityClass = null;
switch (mItemToOpenWhenDrawerCloses) {
case R.id.navigation_allmusic:
activityClass = MusicPlayerActivity.class;
break;
case R.id.navigation_album:
mediaExtras.putString(SAVED_MEDIA_ID, MEDIA_ID_MUSICS_BY_ALBUM);
Log.d("123qwer", "onDrawerClosed, mediaExtras -> " + SAVED_MEDIA_ID + " " + MEDIA_ID_MUSICS_BY_ALBUM);
activityClass = MusicPlayerActivity.class;
break;
case R.id.navigation_playlists:
//TODO:add class later
// activityClass = PlaceholderActivity.class;
break;
}
if (activityClass != null) {
setBundleInfo(mediaExtras);
startActivity(new Intent(BaseActivity.this, activityClass).putExtras(mediaExtras), extras);
finish();
}
}
}
@Override
public void onDrawerStateChanged(int newState) {
if (mDrawerToggle != null) mDrawerToggle.onDrawerStateChanged(newState);
}
};
MusicPlayerActivity.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initializedToolbar();
Log.d("123qwer", "Get Bundle Test " + this.getIntent().getExtras().getString(SAVED_MEDIA_ID));
initializeFromParams(savedInstanceState, getIntent());
}
Я хочу, чтобы отправить mediaExtras Bundle в классе BaseActivity на другой вид деятельности, когда я нажимаю некоторые кнопки. Вы можете увидеть эту часть в BaseActivity.
case R.id.navigation_album:
mediaExtras.putString(SAVED_MEDIA_ID, MEDIA_ID_MUSICS_BY_ALBUM);
Log.d("123qwer", "onDrawerClosed, mediaExtras -> " + SAVED_MEDIA_ID + " " + MEDIA_ID_MUSICS_BY_ALBUM);
activityClass = MusicPlayerActivity.class;
break;
Я попытался поместить информацию о струнах в mediaExtras. Но, когда я попытался получить это, я получил нулевое значение.
this.getIntent().getExtras().getString(SAVED_MEDIA_ID)
Пожалуйста, научи меня, как решить это
Возможный дубликат [Android \ _ Как я могу отправить Bundle в другую активность?] (Http://stackoverflow.com/questions/37799762/android-how-can-i-send-a-bundle-to -another-activity) – Arjan
Выводит ли эта строка на логарифм? 'Log.d ("123qwer", "onDrawerClosed, mediaExtras ->" + SAVED_MEDIA_ID + "" + MEDIA_ID_MUSICS_BY_ALBUM);' –
Что у виду '... putExtras (mediaExtras), дополнительные)'? и 'mediaExtras' и' extras' оба являются объектами Bundle. использовать ключ в качестве первых паров в putExtras добавить Bundle в Intent затем использовать тот же ключ для доступа к Bundle в следующей деятельности –