调用从活动的android标签片段的方法 [英] Calling a fragment method from an activity android tabs

查看:188
本文介绍了调用从活动的android标签片段的方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个有多个选项卡的Andr​​oid应用程序。要创建的标签我用下面的教程:

I have an android app that has several tabs. To create the tabs I used the following tutorial:

http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/

所以标签的使用由TabsPagerAdapter处理片段延伸FragmentPagerAdapter实施。

So the tabs are implemented using Fragments that are handled by TabsPagerAdapter which extends FragmentPagerAdapter.

不过,我已经遇到了麻烦呼吁从我的主要活动在片段中的一个方法。

However I have having trouble calling a method in one of the fragments from my main activity.

我要当我的主要活动收到一条消息,调用此方法。更具体地讲,我需要接收到此消息时更新片段的UI。但我不知道如何正确识别片段作为它不是在一个XML声明,所以没有一个标记/ ID。

I want to call this method when my main activity receives a message. More specifically I need to update the UI of the fragment when this message is received. But I am not sure how to properly identify the fragment as it was not declared in an xml and therefore does not have a tag/id.

我希望有人将能够帮助我找到做到这一点的最好办法。

I was hoping that somebody would be able to help me find the best way to do this.

谢谢!

推荐答案

首先创建所有片段的的onCreate 活动的方式并将其添加到 mMyFrag

first create all of your fragment in onCreate method of Activity and add them to mMyFrag

ArrayList<MyFragment> mMyFrag = new ArrayList<MyFragment>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    for(int i=0; i<4; i++) {
        MyFragment fragment = MyFragment.newInstance(arg);
        mMyFrag.add(fragment);
   }
}

和改变你的适配器:

private class MyPagerAdapter extends FragmentPagerAdapter {

private ArrayList<MyFragment> mMyFragList;

public MyPagerAdapter(FragmentManager fm, ArrayList<MyFragment> list) {
    super(fm);
    mMyFragList = list;
}

@Override
public int getCount() {
   return mMyFragList.size();
}

@Override
public int getItemPosition(Object object) {
    return POSITION_NONE;
}

@Override
public MyFragment getItem(int position) {
   return mMyFragList.get(position);
}

}

所以,当你想调用从活性的方法进行分段说1做到这一点:

so when you want to call a method from activity to fragment say 1 do this:

mMyFrag.get(1).yourMethod();

这篇关于调用从活动的android标签片段的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆