fragment的传值
如果某个fragment需要用很多次,则需要复用,然后就是单例的干货
就是长下面这样,如果不想单例,只是想传值就putXXX就行
public staticToWebviewFragmentnewInstance(String url,String title) {
ToWebviewFragment fragment =newToWebviewFragment();
Bundle args =newBundle();
args.putString("url",url);
args.putString("title",title);
fragment.setArguments(args);
returnfragment;
}
上面的也是谷歌官方推荐使用的使用方法
往下拉没几行就到了
https://developer.android.com/reference/android/app/Fragment.html
image后一个fragment销毁的时候传值非前一个fragment 。
③
bfragment中onactivityresult这样写
publicvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
//然后在data里面取数据
}
①
Afragment fragment=new Aragment(); (afragment是要跳转的fragment) Afragment.setTargetFragment(Bfragment.this,100); (bfragment是) getFragmentManager().beginTransaction()
.replace(R.id.rlroot,timePickFragment)
.addToBackStack(null)
.commit();
②
a类中这样显示的,并且在ondestory中
Intentintent=newIntent();
intent.putExtra("mounth",mounth);
intent.putExtra("tag","mounth");
getTargetFragment().onActivityResult(100,Activity.RESULT_OK,intent);
☆☆☆☆☆☆(或者说是防止fragment重新绘制界面在使用replace方法跳转的时候,replace方法在使用的时候会先放当前的frgament走ondestory这个方法。)
replace之后如何不重新绘制布局,replace没有弹栈之前,就是没有popbackstack的时候,获取是按物理返回键点的时候,是不会走ondestory方法的,顶多走到ondestoryview方法,但是这个fragment上面的数据还被保存着,就是数组之类的数据。由此发现fragment在走了ondestoryview之后,上面的数据并没有被销毁。
这个相当精髓,亲测并不会报错和重新加载布局4.16 (使用replace方法来添加fragment,首先replace方法是把activity中容器中所有的fragment移除掉)
https://www.cnblogs.com/laishenghao/p/5157914.html
用上面这中方式来配合replace的操作就不会在frgament弹栈的时候重新加载页面了。当以添加回退栈的形式添加fragment的时候,
fragment中使用onActivityResult方法,这个问题在之前选择相册中有遇
可能会走寄生在activity上的onactivityforresult方法。
网友评论