关于fragment的传值问题
来源:互联网 发布:螺纹铣刀怎么编程 编辑:程序博客网 时间:2024/06/06 11:00
以下是摘录自http://stackoverflow.com/questions/13700798/basic-communication-between-two-fragments上的评论内容。
Basic Communication between two fragments
I have one activity - MainActivity
. Within this Activity
I have two fragments
, both of which I created declaratively within the xml.
I am trying to pass the String
of text input by the user into Fragment A
to the text view in Fragment B
. However this is proving to be very difficult. Does anyone know how I might achieve this?
I am aware that a fragment can get a reference to it's activity using getActivity()
. So im guessing I would start there?
4 Answers
Have a look at the Android deverlopers page:http://developer.android.com/training/basics/fragments/communicating.html#DefineInterface
Basically, you define an interface in your Fragment A, and let your Activity implement that Interface. Now you can call the interface method in your Fragment, and your Activity will receive the event. Now in your activity, you can call your second Fragment to update the textview with the received value
// You Activity implements your interfacepublic class YourActivity implements FragmentA.TextClicked{ @Override public void sendText(String text){ // Get Fragment B FraB frag = (FragB) getSupportFragmentManager().findFragmentById(R.id.fragment_b); frag.updateText(text); }}// Fragment A defines an Interface, and calls the method when neededpublic class FragA extends Fragment{ TextClicked mCallback; public interface TextClicked{ public void sendText(String text); } @Override public void onAttach(Activity activity) { super.onAttach(activity); // This makes sure that the container activity has implemented // the callback interface. If not, it throws an exception try { mCallback = (TextClicked) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement TextClicked"); } } public void someMethod(){ mCallback.sendText("YOUR TEXT"); }}// Fragment B has a public method to do something with the textpublic class FragB extends Fragment{ public void updateText(String text){ // Here you have it }}
- 关于fragment的传值问题
- 关于fragment传值的问题
- 关于Activity向Fragment传值的问题
- 关于Fragment栈的问题
- 关于android Fragment的生命周期的问题
- 关于 Fragment内嵌套Fragment 切换显示不正确的问题。
- 关于viewpager+fragment中嵌套viewpager+fragment的问题处理:
- 关于ViewPager嵌套Fragment,Fragment使用GridView导致的问题
- 关于android Fragment onActivityResult 的问题
- 关于Fragment中setText的问题
- Android - 关于Fragment的预览问题
- 关于fragment多界面跳转的问题
- 关于Fragment对于回退栈的理解问题
- 关于Fragment下面onActivityResult()无回调的问题
- 关于fragment的构造函数问题
- 关于fragment中嵌套viewpager的问题
- 关于fragment多次调用onCreateView的问题
- 关于fragment跳转activity的回传值问题
- python中doctest自我测试(测试模块中的函数是否对)
- 安装easy_install的方法
- 使用vim代替IDE
- 1036. Boys vs Girls (25)
- asdfasdfasd
- 关于fragment的传值问题
- android APK签名原理
- HDU 4126 Genghis Khan the Conqueror prim + 树形DP 好题
- 回忆版—实习生应聘的c#笔试基础
- qt某网站免积分下载
- 杭电2044 一只小蜜蜂...
- Android Studio 函数用法提示 快捷键
- 那些年的你我他
- 用常规手段破解基于域名和IP地址的网络过滤封锁