java - 刷新当前片段而不留下片段新/更改的数据
问题描述
我有 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);
}
}
解决方案
推荐阅读
- javascript - 在 JavaScript 范围内设置 jstl 值
- curl - 使用 curl 通过 Salesforce api 获取数据失败
- postgresql - 是否可以直接访问 PostgreSQL?
- javascript - 将新道具传递给从地图创建的组件
- python - Matplotlib/Seaborn:使用数据框绘制水平注释子图/轨迹
- sql - 连接三个表以获得特定结果
- asp.net-core - 验证电子邮件地址无效
- spring-boot - JUnit - 如何模拟 MapStruct 嵌套映射器
- json - 如何从打字稿中的json获取连接键列表
- python - GQL 查询限制