Activity和Fragment的通信以及Fragment的切换
在上一篇的博客中讲到了,播放器的主界面布局,是由一个activity和一个fragment构成的,activity启动的时候,在其onCreate()方法里就会创建一个fragment的实例对象,并显示在activity中的,这样的一个好处就是处于activity上的控制台(控制上一首/下一首等的按钮)可以不随着fragment的切换而变化,会一直固定在这个播放器的界面上,避免了在好多个activity里都重复写这个控制台.
这一篇博客主要讲的是activity和fragment之间的通信,还有如何用FragmentManager和FragmentTransaction实现Fragment之间的切换.
在开始之前,先新建一个类名为AppConstant,和它的名字一样,这个类专门用来存放需要用到的常量:
public interface AppConstant {
public class PlayerMsg{
public static final int PLAY_MSG = 1; //开始播放
public static final int PAUSE = 2; //暂停播放
public static final int PREVIOUS_MUSIC = 3; //上一首
public static final int NEXT_MUSIC = 4; //下一首
public static final int LOOP_MODE = 5; //循环播放
public static final int RANDOM_MODE = 6; //随机播放
public static final int CHANGE_TO_MY_MUSIC_FRAGMENT=7; //更换fragment消息
public static final int LIST_CLICK = 8; //列表点击
public static final int BACK_TO_MAIN_FRAGMENT=9; //回退到主fragment
public static final int DISMISS_CLICK = 10; //回退到主fragment
public static final int FRAGMENT_RANDOM_PLAY = 11; //小卷毛点歌
public static final int ADD_TO_FAVORITE = 12; //加入我的最爱
public static final int DELETE_FROM_FAVORITE = 13; //删除我的最爱
}
public class NotificationMsg{
public static final String NOTIFICATION_PREVIOUS_MUSIC = "PREVIOUS";
public static final String NOTIFICATION_NEXT_MUSIC = "NEXT";
public static final String NOTIFICATION_PAUSE_MUSIC = "PLAY";
public static final String NOTIFICATION_EXIT = "EXIT";
}
}
在上一篇开发的基础之上,再新建一个Fragment