您的位置:首页 > 移动开发 > Android开发

Android 在Activity中响应Fragment中的事件

2017-08-09 14:23 330 查看
原址:http://blog.csdn.net/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);
}
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11


②在fragment中,声明这个接口

//...
private SendMessageCommunitor sendMessage;
//...
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
sendMessage = (SendMessageCommunitor) activity;
}
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8


③ activity里implement这个接口,并实现抽象方法

public class MainActivity extends AppCompatActivity implements SendMessageCommunitor {
//...
@Override
public void sendMessage(String msg) {
//...写上你想执行的代码
}
1
2
3
4
5
6
1
2
3
4
5
6


④ 在fragment中调用它

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);

btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendMessage.sendMessage("open");
}
});
//...
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐