![](/img/trans.png)
[英]How to dynamically add/remove item Fragments in MasterDetailFlow Android Java Example?
[英]How to add quantiy of food item in dynamic fragments?
我正在创建一个在线食品订单应用程序,我在视图寻呼机中以单个片段(而不是列表形式)显示单个项目,但是当我尝试添加一个项目的数量然后更改其他项目中的显示(即,其他片段中显示的更改) )数量不在同一项目中,因为有太多项目。
如何管理每件商品的数量,以使更改显示在同一商品中而不是其他商品中,而在此代码中造成问题的另一件事是当我滑动商品然后重置数量时。 我想知道如何在视图寻呼机片段中添加或删除单个项目的数量。
这是我的代码:
public PlaceholderFragment() {
}
public static PlaceholderFragment newInstance(int position) {
PlaceholderFragment fragment = new PlaceholderFragment();
String itemTitle = foodItemTitle.get(position);
String itemPrice = foodItemPrice.get(position);
String itemImage = foodItemImage.get(position);
Bundle args = new Bundle();
args.putString("ITEMS", itemTitle);
args.putString("PRICE", itemPrice);
args.putString("IMAGE", itemImage);
fragment.setArguments(args);
return fragment;
}
public static void setContext( Activity activity) {
context = activity;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_items_list, container, false);
img = (ImageView) rootView.findViewById(R.id.section_label);
pricePerItem = rootView.findViewById(R.id.price);
nutri = rootView.findViewById(R.id.itemName);
removeBtn=rootView.findViewById(R.id.removebtn);
addBtn=rootView.findViewById(R.id.addBtn);
quantity=rootView.findViewById(R.id.qty);
String items = getArguments().get("ITEMS").toString();
final String price = getArguments().get("PRICE").toString();
String image = getArguments().get("IMAGE").toString();
setItemDetails(items, price, image);
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
countTtl = count + 1;
int curntQty = Integer.parseInt(quantity.getText().toString()) + 1;
Toast.makeText(getContext(), String.valueOf(curntQty), Toast.LENGTH_SHORT).show();
quantity.setText(String.valueOf(curntQty));}});
removeBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (quantity.getText().toString().equals("0")) {
Toast.makeText(getContext(), "Add Item First", Toast.LENGTH_SHORT).show();
} else {
int qtyTtl = Integer.parseInt(quantity.getText().toString()) - 1;
quantity.setText(String.valueOf(qtyTtl));
Toast.makeText(getContext(), quantity.getText().toString(), Toast.LENGTH_SHORT).show(); }
}
});
return rootView;
}
}
private static void setItemDetails(String item, String price, String image) {
String[] itemStr = item.split(",");
String[] itemPriceStr = price.split(",");
String[] imageStr = image.split(",");
for (int i = 0; i < itemStr.length; i++) {
String oneItem = itemStr[i].trim();
oneItem = oneItem.replace("[", "");
oneItem = oneItem.replace("]", "");
nutri.setText(oneItem);
String Price = itemPriceStr[i].trim();
String perImage = imageStr[i].trim();
Price = Price.replace("[", "");
Price = Price.replace("]", "");
pricePerItem.setText(Price);
perImage = perImage.replace("[", "");
perImage = perImage.replace("]", "");
}
}
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class below).
return PlaceholderFragment.newInstance(position + 0);
}
@Override
public int getCount() {
// Show 3 total pages.
return mFragmentList.size();
}
public void addFragment(Fragment fragment) {
mFragmentList.add(fragment);
}
@Override
public int getItemPosition(Object object) {
return super.getItemPosition(object);}}
如果添加片段项目,我想在相同的位置显示数量
如果我了解您的代码正确, quantity=rootView.findViewById(R.id.qty);
并使用quantity.setText(String.valueOf(curntQty));
设置新的数量 如果您的rootView包含多个片段,则数量只能指向一个不同的片段(并因此指向视图)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.