如何在所有选项卡片段中可用的活动中创建函数?

时间:2014-08-16 16:21:37

标签: android android-fragments tabs

我正在构建一个使用三个标签片段的应用程序,我想在一个地方创建一个可以从所有三个标签调用的函数。我假设我需要在包含选项卡的活动中创建新函数,但我不确定如何声明它或如何从其中一个选项卡片段调用它。

这是我在主要活动中创建标签的方式:

public class MainActivity extends FragmentActivity implements TabListener {

    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private ActionBar actionBar;

    // Tab titles
    private String[] tabs = { "Search", "History", "Saved" };


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //Initialise the Database connection
        DBAdapter.init(this);

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Setup tab bar
        viewPager = (ViewPager) findViewById(R.id.pager);
        actionBar = getActionBar();
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

        viewPager.setAdapter(mAdapter);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        

        //Add the tabs to the action bar
        for (String tab_name : tabs) {
            actionBar.addTab(actionBar.newTab().setText(tab_name).setTabListener(this));
        }

        //Tab Swipe change listener
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                // on changing the page
                // make respected tab selected
                actionBar.setSelectedNavigationItem(position);
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
    }
}

1 个答案:

答案 0 :(得分:0)

创建您需要在父Activity中调用的函数,它必须是公共方法

你可以像这样调用这个函数:

((YourActivityClassName)getActivity()).yourPublicMethod();