【问题标题】:Android: Interface vs get methodAndroid:接口与获取方法
【发布时间】:2017-05-24 13:36:53
【问题描述】:

在每个默认片段中都有一个接口,如下所示:

public interface OnFragmentInteractionListener
{
    void onFragmentInteraction(String string);
}

这样调用的:

@Override
public void onAttach(Context context)
{
    super.onAttach(context);
    if (context instanceof OnFragmentInteractionListener)
    {
        mListener = (OnFragmentInteractionListener) context;
        mListener.onFragmentInteraction("Interfaccia fragment");
    } else
    {
        throw new RuntimeException(context.toString()
                + " must implement OnFragmentInteractionListener");
    }
}

通过接口的方法实现向activity发送数据很有用:

@Override
public void onFragmentInteraction(String string)
{
    Toast.makeText(getApplicationContext(), string,Toast.LENGTH_LONG).show();
}

我也可以对片段中的 get 方法做同样的事情

public String get()
{
    return "Interfaccia fragment";
}

被activity调用的方式是这样的:

BlankFragment blankFragment = BlankFragment.newInstance("","");  
Toast.makeText(getApplicationContext(),blankFragment.get(),Toast.LENGTH_LONG).show();

那么,如果值很少(也只有一个值),我该怎么办?用第一种还是第二种方法?我认为第二个更快,但第一个更完整。

【问题讨论】:

    标签: java android interface fragment


    【解决方案1】:

    您不想在活动中维护对片段的引用,因为它们可能会被销毁并重新创建。所以使用接口,而不是 get 方法。

    【讨论】:

      猜你喜欢
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 2011-09-16
      • 2018-09-22
      • 2013-01-19
      相关资源
      最近更新 更多