首页 > 解决方案 > 刷新当前片段而不留下片段新/更改的数据

问题描述

我有 3 个选项卡,分别是主页、搜索、购物车。

我遇到的大部分内容都是 onPagedSelected,这不是我想要的。没有人指出我的目的,或者我有什么问题。

在购物车片段中,我有一个列表视图,它显示所有具有递增 (+) 和递减 (-) 按钮的项目,以及一个显示数量值的文本框。单击增量或减量按钮时,我希望刷新或重新加载相同的购物车片段并显示将导致新价格的新增量值。

我所做的只是单击按钮,将增量方法保存到数据库,然后我调用购物车片段空结构,以便可以重新创建所有内容,但我没有得到任何结果。

尝试/研究:我在 viewpager 选项卡中的片段不刷新: 我在 viewpager 选项卡中的片段不刷新

查看寻呼机和片段生命周期: 查看寻呼机和片段生命周期

每次用户选择 Fragment 时刷新 PageViewer Fragment: http ://semycolon.blogspot.com/2014/12/refresh-pageviewer-fragment-everytime.html

刷新片段: https ://medium.com/@taman.neupane/fragment-refresh-9ba6a6d7b897

每次用户选择片段时刷新 PageViewer 片段: http ://semycolon.blogspot.com/2014/12/refresh-pageviewer-fragment-everytime.html

ViewPager 与 fragmentPagerAdapter : https://guides.codepath.com/android/viewpager-with-fragmentpageradapter

这是填充购物车片段中显示的 ListView 的 BaseAdapter 类

Button increaseItemQuantity = view.findViewById(R.id.increaseItemQuantity);
        increaseItemQuantity.setOnClickListener(new View.OnClickListener() {
            private int itemCount;
            @Override
            public void onClick(View view) {
                if(cart.getTestcart_quantity() > 0){
                    itemCount = cart.getTestcart_quantity() + 1;
                    new CartManager(context, cart.getUser_id(), cart.getProduct() , itemCount).updateCart();
                    displayQuantity.setText(String.valueOf(itemCount));      
           // the does not update the new value in the textbox between the plus and minus button in my UI
                  new UserCart();   // on success it came back here to call the same cart fragment class after button click
                       Log.d("Message", String.valueOf(itemCount));
            }
        }
    });

这是我的主页活动

final ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());

    //Adding Fragments
    adapter.addFragment(new ContentOne(), "");
    adapter.addFragment(new ContentTwo(), "");
    adapter.addFragment(new UserCart(), "");

    //adapter setup
    viewPager.setAdapter(adapter);
    tabLayout.setupWithViewPager(viewPager);

这是我的 ViewPageAdapter

public class ViewPagerAdapter extends FragmentStatePagerAdapter  {

    private List<Fragment> fragmentList         =   new ArrayList<>();
    private List<String> fragmentListTitle    =   new ArrayList<>();

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

    @Override
    public Fragment getItem(int position) {
        switch (position) {
         case 0:
         return new ContentOne();
         case 1:
         return new ContentTwo();
         case 2:
        return new UserCart();
        default:
        return null;
      }
  }

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

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

   public void addFragment(Fragment fragment, String Title){
     fragmentList.add(fragment);
     fragmentListTitle.add(Title);
   }

  }

标签: javaandroid-studioandroid-viewpagerfragment

解决方案


推荐阅读