android在另一个片段中进行更改

时间:2015-09-17 11:27:03

标签: android android-layout android-fragments android-intent android-activity

我有以下情况: enter image description here

在我的主要活动中,我使用了viewpager和fragmentpageradapter的滑动标签。

假设我有2个标签。 在选项卡2中,在一个事件(比如按下按钮)上,我使用startActivityForResult启动一个新活动。 现在,当我从新活动(在onActionResult中)返回Tab 2时,我希望Tab 1得到刷新。

我目前正在使用getActivity.recreate()

进行此操作

这是考虑表现的好方法还是有其他办法吗?

我对创建代码的主要活动是:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_my);

        final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);

        // setup action bar for tabs
        final ActionBar actionBar = getActionBar();

        TabsPagerAdapter mAdapter = new TabsPagerAdapter(getFragmentManager());
        viewPager.setAdapter(mAdapter);

        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        actionBar.setDisplayShowTitleEnabled(true);

        // Create a tab listener that is called when the user changes tabs.
        ActionBar.TabListener tabListener = new ActionBar.TabListener() {
            public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
                viewPager.setCurrentItem(tab.getPosition());
            }

            public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
            }

            public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
            }
        };    

        ActionBar.Tab tab = actionBar.newTab()
                .setText(R.string.tab1)
                .setTabListener(tabListener);
        actionBar.addTab(tab, 0, false);

        tab = actionBar.newTab()
                .setText(R.string.tab2)
                .setTabListener(tabListener);
        actionBar.addTab(tab, 1, true);  

        // on swiping the viewpager make respective tab selected
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                getActionBar().setSelectedNavigationItem(position);
            }

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

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

0 个答案:

没有答案