【问题标题】:Proper way to communicate with parent activity?与父母活动沟通的正确方式?
【发布时间】:2015-03-27 09:05:41
【问题描述】:

我想知道调用父级(Activity)函数的正确方法是什么,我有一个启动一个片段的活动,我想从这个片段中调用 MyActivity 中的 aFunction()。

是:

((MyActivity) getActivity()).aFunction();

或者干脆创建一个接口:

public class aFragment extends Fragment {
  OnExampleListener mCallback;

  // MyActivity must implement this interface
  public interface OnExampleListener{
      public void aFunction();
  }
}

这样做的最佳方法是什么?

【问题讨论】:

    标签: android android-fragments interface


    【解决方案1】:

    这本身并没有错,但不鼓励这样做,因为它使您的片段依赖于活动,如果您使用接口,情况并非如此。将其用于测试目的,如果您认真编写应用程序,请使用接口。

    在此处阅读有关 Fragment 到 Activity 通信的部分以使用接口:http://developer.android.com/training/basics/fragments/communicating.html

    【讨论】:

    • 我读过它,但它什么也没说 if "((MyActivity) getActivity()).aFunction();"是不是一个坏方法,是吗?
    • 这是一种快速的方式来做你想做的事。其他方式更优雅,但这工作正常。相同的结果不同的方式
    • 这本身并没有错,但不鼓励这样做,因为它使您的片段依赖于活动,如果您使用接口,情况并非如此。将其用于测试目的,如果您认真编写应用程序,请使用界面。我已经编辑了我的答案。
    • 非常感谢,我现在已经改为通过应用程序使用界面 =)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 2019-05-22
    • 1970-01-01
    相关资源
    最近更新 更多