2016-06-13 60 views
0

我試圖從一個活動發送一個捆綁到另一個。當我在接收活動中加載包時,所有信息似乎都是空的。下面是一些代碼:Android_我如何將捆綁包發送到其他活動?

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捆綁在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) 

請教我該如何解決呢

回答

0

只要把你的包在您使用來啓動該活動的意圖。

Intent mIntent = new Intent(this, ExampleActivitly.class); 
Bundle bundle = new Bundle(); 
bundle.putString("key", value); 
mIntent .putExtras(bundle); 

在ExampleActivitly 只是做

Bundle bundle = getIntent().getExtras(); 
String key = bundle.getString("key") 

希望它會爲你工作:)

+0

bundle.putExtras(mBundle); 我覺得這句話是錯的。 也許intent.putExtras(mBundle); –

+0

感謝您的評論,但它不工作.... –

+0

謝謝@SoonmyunJang,更新了我的答案。 – Neo

相關問題