从其它界面退回到先前界面的时候刷新先前界面的方法

最近在写项目的时候,遇到个需求,Fragment A显示图片列表,单击某张图片以后,跳转到Fragment B,显示被点击图片的大图。在Fragment B界面有一个删除图片的选项。删除图片以后,回到A界面,A界面刷新。

一开始我想的是在Fragment A的代码里重写onResume(),在这个函数中写列表刷新的业务。但是我试了一下,发现从FragmentStack把Fragment B出栈以后并不会执行Fragment A的onResume()方法。

当然也可以把recycleView设置成为静态的,但是我没有选择这个方法。

最后我还是用回调解决了这个问题。

大致代码:

//fragment B
//把Fragment B设置成单例创建.
private static FragemntB fragB = new FragmentB();
private onRefreshListener listener;

public static FragmentB newInstance(){
	return fragB;
}

//写接口
public interfabe onRefreshListener(){
	void refresh();
}

public void setOnRefreshListener(onRefreshListener listener){
	this.listener = listener;
}

//在dialog点击确定以后
public void showDeleteDialog(){
	AlertDialog.Builder builder = new AlertDialog.Builder();
	builder.setMessage("确定要删除吗?");
	builder.setPositiveButton("确定",new DialogInterface.OnClickListener(){
		@Override
		public void onClick(View view){
			getActivity.onBackPressed();
			//回调
			if(listener!=null){
				listener.refresh();
			}
		}
	});
}

A板块

/*
 *Fragment A,利用acticity获取到FragmentB的对象
 *保证获取到的fragmentB和跳转的fragmentB是同一个对象
 */
 fragB.setOnRefreshListener(new onRefreshListener(){
 	public void refresh(){
 		//列表刷新的业务
 	}
 });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值