美文网首页
Fragment传值小结

Fragment传值小结

作者: Android小码农_ | 来源:发表于2020-10-11 15:34 被阅读0次

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方法。

相关文章

网友评论

      本文标题:Fragment传值小结

      本文链接:https://www.haomeiwen.com/subject/ameepktx.html