android – SlidingTabLayout选项卡之间的通信

前端之家收集整理的这篇文章主要介绍了android – SlidingTabLayout选项卡之间的通信前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经搜索了很多关于如何使用SlidingTabLayout在片段之间进行通信但是没有真正得到一个好答案.我知道使用ActionBar但是我想要使用SlidingTabLayout的 android lollipop的新方法.我试过这个 – > http://android-er.blogspot.in/2012/06/communication-between-fragments-in.html但我想要材料设计.我将此链接 http://www.android4devs.com/2015/01/how-to-make-material-design-sliding-tabs.html用于制作材料设计滑动标签.现在我想知道如何在滑动标签之间进行通信.我已经尝试了很多,但找不到我想要的答案.
任何帮助都会非常感激.

解决方法

最干净的方法是定义一个包含Fragments的Activity将实现的接口.这就是我最近解决这个问题的方法

首先在它自己的文件中定义接口,因为它必须对其他类可见.

public interface FragmentCommunication
{
    public void printMessage(String message);
    //....    
}

在您的Activity中,您需要实现此接口

public class MainActivity extends ActionBarActivity implements FragmentCommunication
{   
    //....
    public void printMessage(String message)
    {
        System.out.println(message);
    }
}

最后在你的片段中,你可以使用getActivity()获取托管活动,并使用通信方法将活动强制转换为已实现的通信接口,如下所示:

((FragmentCommunication) getActivity()).printMessage("Hello from Fragment!");

编辑:要进一步将消息传递给其他片段,请执行以下操作:由于您的选项卡都扩展了Fragment,因此最好创建另一个接口

public Interface ReceiverInterface
{
    public void receiveMessage(String str);
}

然后在标签中实现此功能

public class Tab1 extends Fragment implements ReceiverInterface
{
   // .... code .....
    public void receiveString(String str)
    {
        //use str
    }
}

要进一步将此消息发送到其他片段,需要活动查看它们.例如,现在修改Activity实现的printMessage()

public void printMessage(String message)
    {
        System.out.println(message);
        //Send the message that came from one fragment to another
        if (tabFragment1 instanceof ReceiverInterface){
            ((ReceiverInterface) tabFragment1).receiveMessage(message);
        }
    }

猜你在找的Android相关文章