Android Fragment与Activity通过回调实现通信
1.首先在Fragment中声明一个监听器接口
import android.app.Activity;
public class BlackListFragment extends ListFragment implements View.OnClickListener{
...
OnArticleSelectedListener mListener;
/**
* 传递事件:
*
* 1.定义接口
*
* 2.在onAttach方法中检测Activity或其他Fragment是否已经实现接口
*
* 3.在Fragment的某个地方调用接口实例,如监听中调用,通过实例调用接口中的方法
*
* 4.在Activity中实现接口,实现接口的方法即可
*
*
*/
// Container Activity must implement this interface
public interface OnArticleSelectedListener {
public void onArticleSelected();
public String getContent();
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mListener = (OnArticleSelectedListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnArticleSelectedListener");
}
}
//触发该监听器的地方:
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// super.onListItemClick(l, v, position, id);
Cursor c = (Cursor) mAdapter.getItem(position);
black_phone = c.getString(2);
if (mListener!=null) {mListener.onArticleSelected();
String name = mListener.getContent();
showToast(name);}
}
}
2.在Activity中实现该接口
public class MainActivity extends FragmentActivity implements
BlackListFragment.OnArticleSelectedListener {
@Override
public void onArticleSelected() {
showToast("显示问题实现");
mButton.setOnClickListener(this);
}
@Override
public String getContent() {
return "实现接口方法返回字符串";
}
}
3.案例说明
当在BlackListFragment 中触发mListener.onArticleSelected(); 方法时,系统自动回调MainActivity 中的 onArticleSelected() 方法,相当于Fragment把事件传递给Activity了,由Activity来监听Fragment触发的动作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理