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