Android 包含在回压时擦除的recyclerview数据的TableLayout
使用活动、表格布局和片段。从包含tabLayout的活动的第一个选项卡中包含RecyclerView移动到显示其中一个reclerView项的数据的片段时。当用户按下“后退”按钮时,recyclerView数据将被擦除。 尝试调试代码时,源代码将不会创建tabLayout或重新蚀刻数据。在backPressed上没有调用任何方法 类文件代码,其中包含表格布局Android 包含在回压时擦除的recyclerview数据的TableLayout,android,android-recyclerview,fragment,android-tablayout,Android,Android Recyclerview,Fragment,Android Tablayout,使用活动、表格布局和片段。从包含tabLayout的活动的第一个选项卡中包含RecyclerView移动到显示其中一个reclerView项的数据的片段时。当用户按下“后退”按钮时,recyclerView数据将被擦除。 尝试调试代码时,源代码将不会创建tabLayout或重新蚀刻数据。在backPressed上没有调用任何方法 类文件代码,其中包含表格布局 public class HomeFragment extends Fragment implements TabLayout.OnTab
public class HomeFragment extends Fragment implements TabLayout.OnTabSelectedListener {
@BindView(R.id.tvRouteName)
TextView tvRouteName;
@BindView(R.id.pager)
ViewPager viewPager;
@BindView(R.id.tabLayout)
TabLayout tabLayout;
private TabPagerAdapter adapter;
public HomeFragment() {
// Required empty public constructor
}
public static HomeFragment newInstance() {
HomeFragment fragment = new HomeFragment();
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_home, container, false);
ButterKnife.bind(this, view);
//Adding the tabs using addTab() method
tabLayout.addTab(tabLayout.newTab().setText("All"));
tabLayout.addTab(tabLayout.newTab().setText("Pending"));
tabLayout.addTab(tabLayout.newTab().setText("Complete"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
//Creating our pager adapter
adapter = new TabPagerAdapter(getActivity().getSupportFragmentManager(), tabLayout.getTabCount());
//Adding adapter to pager
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
// set route name to the route
String routeName = SiconApp.getInstance().getRouteName();
if (routeName != null && !routeName.isEmpty())
tvRouteName.setText(routeName);
return view;
}
@Override
public void onTabSelected(TabLayout.Tab tab) {
//viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
}
竭尽全力。尝试从onViewCreated、onResume和刷新tabLayout等更改代码
下图显示了recyclerView中的总金额
将此答案视为对上述评论的回复: 数量可以动态更改,金额可以根据数量和金额更改时的总计进行更改。我已经做到了这一点,但每次我一遍又一遍地阅读整个数组时,文本都会发生变化。如果你有更好的方法来完成这个 首先,在
OnTextChange()
中进行计算是不好的。相反,您应该考虑一些小部件的点击事件
小部件可以是一些按钮
或键盘的完成按钮。
以下是一些其他方法:-
- 尝试打开spinner-pro,如果您提供最大数量,您可以限制数量
- 点击
done
do make calculations,打开带有editText
和done按钮的对话框
。
[更新1]
添加我对计算的想法:-
// Calculate GrandTotal for the very first time
int grandTotal = 0;
for (int i = 0; i < mDataSet.size(); i++) {
// addition of all the sub-totals
}
// Get an event of quantity change of recyclerview row - using dialogbox or spinner or anything
// basePrice is price of 1 quantity
// oldQuantity is before updating new quantity to model
currowModel = mDataSet.get(position); // Assuming currModel as current dataset item
grandTotal = grandTotal - (currowModel.getBasePrice() * currModel.getQuantity());
currowModel.setQuantity(updatedQuantity); // Setting new quanity to model
grandTotal = grandTotal + (currowModel.getBasePrice() * currModel.getQuantity());
//第一次计算GrandTotal
int grandTotal=0;
对于(int i=0;i
快乐编码UsergetChildFragmentManager()
而不是getActivity().getSupportFragmentManager()
。这是正确的答案。在过去的48小时里我一直在尝试这个,你保存了我的评论:)是的。我在adapter中犯了同样的错误,我试图将其更改为adapter,但无法更改,所以我在这里没有注意到这一点。@向导如果您有空闲时间,我想知道如何在recycler视图中计算总金额,并显示在包含回收器视图的同一活动中。发布我在ContextChangedCustomerInvoiceFragment.grandTotal中实现的代码=0;对于(int i=0;iarrayList
。For loop将首次出现。从grandtotal中仅减去和添加影响行数据。保留模型类中的数量记录。我在模型中记录了所有这些,但问题仍然是grand total包含旧的附加值,我有点困惑如何管理它。