[转]Android笔记:Fragment与Activity之间的交互

简介:

在Activity中有一个FragmentRight.


step1.首先,为了在Activity中能够使用FragmentRight,写了一条:

1
fragmentRight = (FragmentRight) getFragmentManager().findFragmentById(R.id.fragmentright);


当然,fragmentright.xml就是FragmentRight的布局文件了。

写了这条以后,就可以在Activity中使用FragmentRight实例的方法了


step2.然后,在FragmentRight中我有个按钮,当按它的时候,要触发一些代码。这时,要在FragmentRight中定义一个接口,和一个方法:

1
2
3
4
// Container Activity must implement this interface
public  interface  OnMyButtonClickListener {
public  void  onMyButtonClick(); //接口中定义一个方法
}


当然,之后要在需要的地方调用这个方法。我是在按FragmentRight上那个按钮时调用它。我的按钮就叫testButton.

慢着,接口的方法要被调用前,当然要先声明接口类型的成员变量:

1
2
3
4
5
6
7
private  OnMyButtonClickListener mListener;
testButton.setOnClickListener( new  OnClickListener() {
@Override
public  void  onClick(View v) {
mListener.onMyButtonClick();
}
});


step3.在FragmentRight的onAttach()方法中给mListener这个成员变量赋个值,不然会出讨厌的nullpointerexception哦。

1
2
3
4
5
6
7
8
9
10
11
12
13
@Override
public  void  onAttach(Activity activity)
{
super .onAttach(activity);
try
{
mListener = (OnbtnSendClickListener) activity; //这句就是赋初值了。
}
catch  (ClassCastException e)
{
throw  new  ClassCastException(activity.toString() +  "must implement OnbtnSendClickListener" ); //这条表示,你不在Activity里实现这个接口的话,我就要抛出异常咯。知道下一步该干嘛了吧?
}
}



step4.在Activity中实现这个接口:

...... extends Activity implements OnMyButtonClickListener{......

并且,重写该接口中定义的方法吧:

1
2
3
4
5
@Override
public  void  onMyButtonClick()
{
...... //在这里该干嘛干嘛呗。
}





本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1307721,如需转载请自行联系原作者

目录
相关文章
|
1月前
|
Web App开发 安全 程序员
FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势
多年的互联网寒冬在今年尤为凛冽,坚守安卓开发愈发不易。面对是否转行或学习新技术的迷茫,安卓程序员可从三个方向进阶:1)钻研谷歌新技术,如Kotlin、Flutter、Jetpack等;2)拓展新功能应用,掌握Socket、OpenGL、WebRTC等专业领域技能;3)结合其他行业,如汽车、游戏、安全等,拓宽职业道路。这三个方向各有学习难度和保饭碗指数,助你在安卓开发领域持续成长。
58 1
FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势
|
15天前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
66 6
|
16天前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
22 3
|
16天前
|
缓存 前端开发 Android开发
Android实战之如何截取Activity或者Fragment的内容?
本文首发于公众号“AntDream”,介绍了如何在Android中截取Activity或Fragment的屏幕内容并保存为图片。包括截取整个Activity、特定控件或区域的方法,以及处理包含RecyclerView的复杂情况。
15 3
|
20天前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
66 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
16天前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
13 0
|
6月前
|
Android开发
Android基础知识:什么是Fragment?与Activity的区别是什么?
Android基础知识:什么是Fragment?与Activity的区别是什么?
1162 54
|
Android开发
Android 中Fragment和Activity之间的通信
Android 中Fragment和Activity之间的通信
64 0
|
Android开发
【Android】Fragment跳转Activity时携带数据
在网上你可以看到很多Fragment都是用接口回调来携带数据跳转到Activity。 我觉得好麻烦,于是你们可以用我下面的方法 而我们可以直接使用下面这个方法:
121 0
|
Android开发
Android | View & Fragment & Window 的 getContext() 一定返回 Activity 吗?
Android | View & Fragment & Window 的 getContext() 一定返回 Activity 吗?
160 0
Android | View & Fragment & Window 的 getContext() 一定返回 Activity 吗?