![](/img/trans.png)
[英]Sending multiple pieces of data from a fragment to MainActivity (Android Studio)
[英]Sending data from Fragment to MainActivity
我的MainActivity
有一个TextView
,而在与MainActivity
相连的Fragment
中有一个Button
。 当我单击Button
我希望TextView
说“按钮已单击”。
这可能吗?
我知道,连接到同一Activity
两个Fragments
可以轻松地相互通信并相互发送数据。 但是Fragment
的对象可以将数据发送到Activity
的对象Activity
使TextView
其自己的Fragment
并将其附加到Activity
是更好的编程方法吗? 然后,我可以简单地让两个片段相互发送数据。
抱歉,如果这不是StackOverflow的正确类型。 我是Fragments
新手,因此无法在此问题上找到清晰的解释。
提前致谢!
当前接受的答案(在“活动”中使用静态方法)既是奇数又是“错”。
静态方法的使用很奇怪,因为它不需要是静态的。
这是错误的,因为片段必须了解托管它的特定活动。 这是“紧密耦合”,并且还使得该片段不可重复使用。
有两种常见的解决方案:
您可以在Activity中创建一个静态方法,该方法中将包含TextView。 而当您需要升级时,只需从片段中调用它即可。 就像是:
活动中:
public static void updateText(){
//your textview
text.setText("Button Clicked");
}
当您单击片段中的按钮时,只需调用它即可。
就像是:
从片段:
//Inside Button click listener
MainActivity.updateText();
尚未测试,但希望这种方法能奏效。
您是否尝试过getActivity()
方法来检索对父活动的引用并使用一种方法来设置数据,例如:
// public final Activity getActivity ()
MyActivity activity = (MyActivity) getActivity();
activity.setText("...");
我可能是错的,但我会尝试的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.