将数据从第一个活动传递到第二个活动以播放歌曲

时间:2015-11-19 00:26:14

标签: android android-layout android-fragments android-intent android-activity

如何在这些活动之间传递数据,因为现在我可以在单击列表项时在第一个活动中播放音乐,但现在我想将包含列表的第一个活动中的数据传递给第二个活动,直接在第二个活动中播放歌曲,我也很困惑服务,因为我在第一次活动中使用服务时,我在第二次活动中播放将在服务上发生的事情

1 个答案:

答案 0 :(得分:0)

您可以在启动第二项活动的意图中添加额外数据。

为此你的歌曲类必须实现Parcelable

public class Song implements Parcelable
{
    string artist;
    string songName;
    string filePath;

    @Override
    public int describeContents()
    {
        return 0;
    }

    protected Song(Parcel in)
    {
        artist = in.readString();
        songName = in.readString();
        filePath = in.readString();     
    }

    @Override
    public void writeToParcel(Parcel dest, int flags)
    {
        dest.writeString(artist);
        dest.writeString(songName);       
        dest.writeString(filePath);
    }
}

然后当打开第二个活动来播放歌曲时,它会是这样的:

Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("song", songToPlay);
getApplicationContext().startActivity(intent);

最后你会收到第二项活动中的歌曲如下:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.song_player);

    Intent intent = getIntent();
    if (intent != null)
    {
        if (intent.hasExtra("song"))
        {
            Song songToPlay = intent.getExtra("song");      
        }
    }
}