原址:http://blog.youkuaiyun.com/u013003052/article/details/50445354
当我们想要在fragment去执行一些代码,但是这个代码我们想要把它放在activity里面去执行。那么activity里这段代码是如何在fragment中去启动的呢?
使用接口的方法,可以为我们去实现这个功能。以下分为几个步骤去到达这个功能。
- ① 创建一个interface接口,在里面写上抽象方法
- ② 在fragment中,声明这个接口
- ③ activity里implement这个接口,并实现抽象方法。改方法就是我们想要在activity中实现的方法,写上自己详细的代码
- ④ 在fragment中调用它
①创建一个interface接口
/**
* Created by qin on 2016/1/1.
* 用于fragment传递事件给activity
*/
public interface SendMessageCommunitor {
/**从fragment发送消息
* @param msg 消息内容
* */
void sendMessage(String msg);
}
②在fragment中,声明这个接口
//...
private SendMessageCommunitor sendMessage;
//...
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
sendMessage = (SendMessageCommunitor) activity;
}
③ activity里implement这个接口,并实现抽象方法
public class MainActivity extends AppCompatActivity implements SendMessageCommunitor {
@Override
public void sendMessage(String msg) {
}
④ 在fragment中调用它
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendMessage.sendMessage("open");
}
});