刷新并加载上一个活动的一个特定片段

时间:2017-05-04 05:15:33

标签: android android-activity fragment

我在活动中有3个片段。其中一个片段显示项目列表以及价格和数量。在选择任何项目时,将启动一个新活动,该活动将显示该项目的详细信息。在此活动中,我们可以更改商品价格,数量等。 我想在项目详细信息活动中保存更改后立即重新加载并显示先前活动中的片段(包含更新的值)。

以下是第一项活动的代码:

 public class SupplierHomeActivity extends AppCompatActivity implements  
 ActionBar.TabListener {

    private Toolbar toolbar;
    private TabLayout tabLayout;
    private ViewPager viewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_supplier_home);

        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        viewPager = (ViewPager) findViewById(R.id.viewpager);
        setupViewPager(viewPager);

        tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);
       // getSupportFragmentManager().addOnBackStackChangedListener(getListener());
    }

    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        adapter.addFragment(new Fragment(), "PROFILE");
        adapter.addFragment(new InventoryFragment(), "INVENTORY");
        adapter.addFragment(new SupplierOrderFragment(), "ORDERS");
        viewPager.setAdapter(adapter);
    }

    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }

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

        public void addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }
    }
}

提前谢谢。

1 个答案:

答案 0 :(得分:0)

您需要全局声明适配器并添加 onResume()方法,以通知适配器已更改内容的数据。