Java 如果项目名称相同,则Arraylist重复条目
我在代码中遇到了一个问题 场景是 从微调器添加项目时,它将添加到边列表中 在第一次按下订单按钮之前,其文本设置为蓝色,您也可以修改数量 -添加第二项 -按下订单按钮后,订单信息将发送到db,文本设置为黄色。订单下达后,您将无法修改项目 -现在,您可以向下一个订单添加一个不同的项目 -然后你下第二个订单 -如果你添加了相同的物品“摩根船长”,那么它就会添加到第二份订单中 下面是处理上述操作的所有代码 我使用两个片段main fragment和SideFragment SidePanelFragment.javaJava 如果项目名称相同,则Arraylist重复条目,java,android,listview,android-fragments,arraylist,Java,Android,Listview,Android Fragments,Arraylist,我在代码中遇到了一个问题 场景是 从微调器添加项目时,它将添加到边列表中 在第一次按下订单按钮之前,其文本设置为蓝色,您也可以修改数量 -添加第二项 -按下订单按钮后,订单信息将发送到db,文本设置为黄色。订单下达后,您将无法修改项目 -现在,您可以向下一个订单添加一个不同的项目 -然后你下第二个订单 -如果你添加了相同的物品“摩根船长”,那么它就会添加到第二份订单中 下面是处理上述操作的所有代码 我使用两个片段main fragment和SideFragment SidePanelFr
public class SidePanelFragment extends android.app.Fragment {
ListView list1;
ArrayList<Items> itemsArray = new ArrayList<Items>();
ItemsAdapter1 adapter = null;
boolean isPresent = false;
Button btnCancel;
Button btnOrder;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_side_panel, container, false);
list1 = (ListView) view.findViewById(R.id.listViewSide);
btnCancel=(Button)view.findViewById(R.id.button);
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int i=0;i<itemsArray.size();i++){
if(!itemsArray.get(i).Ordered)
itemsArray.remove(i);
}
//itemsArray.clear();
adapter.notifyDataSetChanged();
}
});
btnOrder=(Button)view.findViewById(R.id.btnOrder);
btnOrder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int i=0;i<itemsArray.size();i++){
if(!itemsArray.get(i).Ordered) {
// itemsArray.get(i).
itemsArray.get(i).Ordered = true;
}
}
adapter.notifyDataSetChanged();
}
});
adapter = new ItemsAdapter1(getActivity(), itemsArray);
adapter.notifyDataSetChanged();
list1.invalidateViews();
list1.setAdapter(adapter);
return view;
}
public void getAddedItems(Items item) {
for (int i = 0; i < itemsArray.size(); i++) {
if (item.ItemName == itemsArray.get(i).ItemName) {
int quant = itemsArray.get(i).prevQuant;
item.quantity = item.quantity + quant;
itemsArray.set(i, item);
itemsArray.get(i).prevQuant = item.quantity;
isPresent = true;
}
}
if (!isPresent) {
itemsArray.add(item);
itemsArray.get(itemsArray.size() - 1).prevQuant = item.quantity;
}
isPresent = false;
adapter = new ItemsAdapter1(getActivity(), itemsArray);
adapter.notifyDataSetChanged();
list1.invalidateViews();
list1.setAdapter(adapter);
}
class ItemsAdapter1 extends BaseAdapter {
Context context;
ArrayList<Items> itemList;
ItemsAdapter1(Context context, ArrayList<Items> itemList1) {
itemList = new ArrayList<Items>();
this.context = context;
itemList = itemList1;
}
@Override
public int getCount() {
return itemList.size();
}
@Override
public Object getItem(int position) {
return itemList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
class ViewHolder {
TextView txtView1;
TextView txtView2;
TextView txtView3;
ImageButton imgBtn;
Button btnQuantPlus;
Button btnQuantMinus;
ViewHolder(final View V) {
txtView1 = (TextView) V.findViewById(R.id.txtSideItemName);
txtView2 = (TextView) V.findViewById(R.id.txtSideQuant);
txtView3 = (TextView) V.findViewById(R.id.txtAmountSide);
//if (itemList.get().Ordered==false)
imgBtn = (ImageButton) V.findViewById(R.id.btndelete);
btnQuantPlus=(Button)V.findViewById(R.id.btnQuantPlus);
btnQuantMinus=(Button)V.findViewById(R.id.btnQuantMinus);
}
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflator = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
View row = convertView;
ViewHolder holder = null;
if (row == null) {
row = inflator.inflate(R.layout.side_panel_list, parent, false);
holder = new ViewHolder(row);
} else {
holder = (ViewHolder) row.getTag();
}
Items it = itemList.get(position);
holder.txtView1.setText(it.ItemName);
holder.txtView2.setText(String.valueOf(it.Price));
holder.txtView3.setText(String.valueOf(it.quantity));
if(itemList.get(position).Ordered==false) {
holder.btnQuantMinus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ((itemList.get(position).quantity) > 1) {
Items it = new Items();
it = itemList.get(position);
it.quantity = it.prevQuant - 1;
it.prevQuant = it.quantity;
itemList.set(position, it);
adapter.notifyDataSetChanged();
}
}
});
holder.btnQuantPlus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// if(it.quantity>1)
Items it = new Items();
it = itemList.get(position);
it.quantity = it.prevQuant + 1;
it.prevQuant = it.quantity;
itemList.set(position, it);
adapter.notifyDataSetChanged();
}
});
holder.imgBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
itemList.remove(position);
adapter.notifyDataSetChanged();
}
});
}
else
{
holder.imgBtn.setVisibility(View.GONE);
holder.btnQuantMinus.setVisibility(View.GONE);
holder.btnQuantPlus.setVisibility(View.GONE);
}
//holder.imgBtn.setVisibility(View.GONE);
row.setTag(holder);
holder.txtView3.setText(String.valueOf(itemList.get(position).quantity));
setRowColor(row,position);
return row;
}
private void setRowColor(View view, int var) {
if(itemList.get(var).Ordered==true){
view.setBackgroundColor(Color.parseColor("#e7ff00"));
}else
view.setBackgroundColor(Color.parseColor("#4585f2"));
//view.setBackgroundColor(Color.rgb(0,0,255));
}
}
}
public class MainPanelFragment extends android.app.Fragment implements View.OnClickListener {
Spinner spinner;
//ArrayList<String> listCatagories= null;
ItemsAdapter adapter;
ArrayAdapter adapter1;
CategoriesAdapter catAdapter;
ListView list;
TextView itemName;
TextView itemPrice;
EditText quantity;
Button quantPlus;
Button quantMinus;
Button addItem;
int quantCount=1;
ArrayList<Categories> catForAdapter=null;
public String selectedItemName="";
public double selectedItemPrice=0;
public Items selectedItem=null;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view =inflater.inflate(R.layout.fragment_order_menu,container,false);
spinner=(Spinner)view.findViewById(R.id.spinnerCatagory);
list=(ListView)view.findViewById(R.id.listView);
itemName=(TextView)view.findViewById(R.id.textViewItem);
itemName.setText("Select an item");
quantity=(EditText)view.findViewById(R.id.editText);
quantity.setText(String.valueOf(quantCount));
quantity.setEnabled(false);
quantPlus=(Button)view.findViewById(R.id.buttonPlus);
quantMinus=(Button)view.findViewById(R.id.buttonMinus);
//addItem=(Button)view.findViewById(R.id.btnAdd);
quantPlus.setEnabled(false);
quantMinus.setEnabled(false);
itemPrice=(TextView)view.findViewById(R.id.textViewPrice);
final ArrayAdapter<String> spinnerArrayAdapter =new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, catagories);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
catAdapter= new CategoriesAdapter(this.getActivity(),catForAdapter);
spinner.setAdapter(catAdapter);
(this.getActivity(),android.R.layout.simple_list_item_1, drinks);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectedItem=(Items)parent.getItemAtPosition(position);
selectedItemName=selectedItem.ItemName;
selectedItemPrice=selectedItem.Price;
itemName.setText(selectedItemName);
itemPrice.setText(String.valueOf(selectedItemPrice));
quantPlus.setEnabled(true);
quantMinus.setEnabled(true);
quantCount=1;
quantity.setText(String.valueOf(quantCount));
addItem.setEnabled(true);
// Toast.makeText(getActivity().getApplicationContext(),selectedItem, Toast.LENGTH_LONG).show();
}
});
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
addItem.setEnabled(false);
Categories ct= new Categories();
ct= (Categories)spinner.getSelectedItem();
SoapCallClass s= new SoapCallClass();
adapter=new ItemsAdapter(getActivity(),s.getItemsForCategory(ct.TOUCHCODE));
quantCount=1;
quantity.setText(String.valueOf(quantCount));
itemName.setText("Select Item");
itemPrice.setText("0.00");
quantPlus.setEnabled(false);
quantMinus.setEnabled(false);
list.setAdapter(adapter);
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
}
});
quantPlus.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
quantCount++;
quantity.setText(String.valueOf(quantCount));
itemPrice.setText(String.valueOf(quantCount*selectedItemPrice));
}
}
);
quantMinus.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
if(quantCount>1)
quantCount--;
quantity.setText(String.valueOf(quantCount));
itemPrice.setText(String.valueOf(quantCount*selectedItemPrice));
}
}
);
return view;
}
OnAddItemPressed addItemPressed;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
addItemPressed=(OnAddItemPressed)getActivity();
addItem=(Button)getActivity().findViewById(R.id.btnAdd);
addItem.setOnClickListener(this);
}
@Override
public void onClick(View v) {
selectedItem.quantity= quantCount;
selectedItem.Ordered=false;
addItemPressed.onAddItemPressed(selectedItem);
addItem.setEnabled(false);
quantCount=1;
quantity.setText(String.valueOf(quantCount));
itemName.setText("Select Item");
itemPrice.setText("0.00");
quantPlus.setEnabled(false);
quantMinus.setEnabled(false);
}
}
class Items{
public String ItemName;
public int ItemCode;
public double Price;
public int quantity;
public int prevQuant;
public String RESCODE;
public int KOTDATE;
public int KOTNUB;
public int KOTTYP;
public int STEWCODE;
public String TBLNUB;
public int PAXPER;
public String PERSON;
public String SESSON;
public int SRLNUMB;
public float ITMQTY;
public float ITMRAT;
public float ITMVAL;
public int TAXSTR;
public String KITCOD;
public int MENTYP;
public int GRPCOD;
public int BILNUB;
public int UPDFLG;
public int BILSEQ;
public int LSTDAT;
public String LSTTIM;
public String USERID;
public float NCKPER;
public String MODNAM;
public String RORDER;
public boolean Ordered;
}
class ItemsAdapter extends BaseAdapter {
ArrayList<Items> itemList;
Context context;
ItemsAdapter(Context context, ArrayList<Items> itemsArray) {
itemList = new ArrayList<Items>();
this.context = context;
itemList=itemsArray;
}
@Override
public int getCount() {
return itemList.size();
}
@Override
public Object getItem(int position) {
return itemList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
class ViewHolder {
TextView txtView1;
TextView txtView2;
ViewHolder(View V) {
txtView1 = (TextView) V.findViewById(R.id.txtItemName);
txtView2=(TextView) V.findViewById(R.id.txtItemPrice);
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflator = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
View row = convertView;
ViewHolder holder = null;
if (row == null) {
row = inflator.inflate(R.layout.single_item, parent, false);
holder = new ViewHolder(row);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
Items it = itemList.get(position);
holder.txtView1.setText(it.ItemName);
holder.txtView2.setText(String.valueOf(it.Price));
return row;
}
}
class CategoriesAdapter extends BaseAdapter {
ArrayList<Categories> catList;
Context context;
CategoriesAdapter(Context context, ArrayList<Categories> catArray) {
catList = new ArrayList<Categories>();
this.context = context;
catList=catArray;
}
@Override
public int getCount() {
return catList.size();
}
@Override
public Object getItem(int position) {
return catList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
class ViewHolder {
TextView txtView1;
//TextView txtView2;
ViewHolder(View V) {
txtView1 = (TextView) V.findViewById(R.id.txtcatrel);
// txtView2=(TextView) V.findViewById(R.id.txtItemPrice);
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflator = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
View row = convertView;
ViewHolder holder = null;
if (row == null) {
row = inflator.inflate(R.layout.categorylyt, parent, false);
holder = new ViewHolder(row);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
Categories ct = catList.get(position);
holder.txtView1.setText(ct.Name);
return row;
}
}
@Override
public void onAddItemPressed(Items item){
FragmentManager manager= getFragmentManager();
SidePanelFragment sideObj= (SidePanelFragment) manager.findFragmentById(R.id.side_panel);
sideObj.getAddedItems(item);
}
在Menu.java中实现的接口代码
public class SidePanelFragment extends android.app.Fragment {
ListView list1;
ArrayList<Items> itemsArray = new ArrayList<Items>();
ItemsAdapter1 adapter = null;
boolean isPresent = false;
Button btnCancel;
Button btnOrder;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_side_panel, container, false);
list1 = (ListView) view.findViewById(R.id.listViewSide);
btnCancel=(Button)view.findViewById(R.id.button);
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int i=0;i<itemsArray.size();i++){
if(!itemsArray.get(i).Ordered)
itemsArray.remove(i);
}
//itemsArray.clear();
adapter.notifyDataSetChanged();
}
});
btnOrder=(Button)view.findViewById(R.id.btnOrder);
btnOrder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int i=0;i<itemsArray.size();i++){
if(!itemsArray.get(i).Ordered) {
// itemsArray.get(i).
itemsArray.get(i).Ordered = true;
}
}
adapter.notifyDataSetChanged();
}
});
adapter = new ItemsAdapter1(getActivity(), itemsArray);
adapter.notifyDataSetChanged();
list1.invalidateViews();
list1.setAdapter(adapter);
return view;
}
public void getAddedItems(Items item) {
for (int i = 0; i < itemsArray.size(); i++) {
if (item.ItemName == itemsArray.get(i).ItemName) {
int quant = itemsArray.get(i).prevQuant;
item.quantity = item.quantity + quant;
itemsArray.set(i, item);
itemsArray.get(i).prevQuant = item.quantity;
isPresent = true;
}
}
if (!isPresent) {
itemsArray.add(item);
itemsArray.get(itemsArray.size() - 1).prevQuant = item.quantity;
}
isPresent = false;
adapter = new ItemsAdapter1(getActivity(), itemsArray);
adapter.notifyDataSetChanged();
list1.invalidateViews();
list1.setAdapter(adapter);
}
class ItemsAdapter1 extends BaseAdapter {
Context context;
ArrayList<Items> itemList;
ItemsAdapter1(Context context, ArrayList<Items> itemList1) {
itemList = new ArrayList<Items>();
this.context = context;
itemList = itemList1;
}
@Override
public int getCount() {
return itemList.size();
}
@Override
public Object getItem(int position) {
return itemList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
class ViewHolder {
TextView txtView1;
TextView txtView2;
TextView txtView3;
ImageButton imgBtn;
Button btnQuantPlus;
Button btnQuantMinus;
ViewHolder(final View V) {
txtView1 = (TextView) V.findViewById(R.id.txtSideItemName);
txtView2 = (TextView) V.findViewById(R.id.txtSideQuant);
txtView3 = (TextView) V.findViewById(R.id.txtAmountSide);
//if (itemList.get().Ordered==false)
imgBtn = (ImageButton) V.findViewById(R.id.btndelete);
btnQuantPlus=(Button)V.findViewById(R.id.btnQuantPlus);
btnQuantMinus=(Button)V.findViewById(R.id.btnQuantMinus);
}
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflator = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
View row = convertView;
ViewHolder holder = null;
if (row == null) {
row = inflator.inflate(R.layout.side_panel_list, parent, false);
holder = new ViewHolder(row);
} else {
holder = (ViewHolder) row.getTag();
}
Items it = itemList.get(position);
holder.txtView1.setText(it.ItemName);
holder.txtView2.setText(String.valueOf(it.Price));
holder.txtView3.setText(String.valueOf(it.quantity));
if(itemList.get(position).Ordered==false) {
holder.btnQuantMinus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ((itemList.get(position).quantity) > 1) {
Items it = new Items();
it = itemList.get(position);
it.quantity = it.prevQuant - 1;
it.prevQuant = it.quantity;
itemList.set(position, it);
adapter.notifyDataSetChanged();
}
}
});
holder.btnQuantPlus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// if(it.quantity>1)
Items it = new Items();
it = itemList.get(position);
it.quantity = it.prevQuant + 1;
it.prevQuant = it.quantity;
itemList.set(position, it);
adapter.notifyDataSetChanged();
}
});
holder.imgBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
itemList.remove(position);
adapter.notifyDataSetChanged();
}
});
}
else
{
holder.imgBtn.setVisibility(View.GONE);
holder.btnQuantMinus.setVisibility(View.GONE);
holder.btnQuantPlus.setVisibility(View.GONE);
}
//holder.imgBtn.setVisibility(View.GONE);
row.setTag(holder);
holder.txtView3.setText(String.valueOf(itemList.get(position).quantity));
setRowColor(row,position);
return row;
}
private void setRowColor(View view, int var) {
if(itemList.get(var).Ordered==true){
view.setBackgroundColor(Color.parseColor("#e7ff00"));
}else
view.setBackgroundColor(Color.parseColor("#4585f2"));
//view.setBackgroundColor(Color.rgb(0,0,255));
}
}
}
public class MainPanelFragment extends android.app.Fragment implements View.OnClickListener {
Spinner spinner;
//ArrayList<String> listCatagories= null;
ItemsAdapter adapter;
ArrayAdapter adapter1;
CategoriesAdapter catAdapter;
ListView list;
TextView itemName;
TextView itemPrice;
EditText quantity;
Button quantPlus;
Button quantMinus;
Button addItem;
int quantCount=1;
ArrayList<Categories> catForAdapter=null;
public String selectedItemName="";
public double selectedItemPrice=0;
public Items selectedItem=null;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view =inflater.inflate(R.layout.fragment_order_menu,container,false);
spinner=(Spinner)view.findViewById(R.id.spinnerCatagory);
list=(ListView)view.findViewById(R.id.listView);
itemName=(TextView)view.findViewById(R.id.textViewItem);
itemName.setText("Select an item");
quantity=(EditText)view.findViewById(R.id.editText);
quantity.setText(String.valueOf(quantCount));
quantity.setEnabled(false);
quantPlus=(Button)view.findViewById(R.id.buttonPlus);
quantMinus=(Button)view.findViewById(R.id.buttonMinus);
//addItem=(Button)view.findViewById(R.id.btnAdd);
quantPlus.setEnabled(false);
quantMinus.setEnabled(false);
itemPrice=(TextView)view.findViewById(R.id.textViewPrice);
final ArrayAdapter<String> spinnerArrayAdapter =new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, catagories);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
catAdapter= new CategoriesAdapter(this.getActivity(),catForAdapter);
spinner.setAdapter(catAdapter);
(this.getActivity(),android.R.layout.simple_list_item_1, drinks);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectedItem=(Items)parent.getItemAtPosition(position);
selectedItemName=selectedItem.ItemName;
selectedItemPrice=selectedItem.Price;
itemName.setText(selectedItemName);
itemPrice.setText(String.valueOf(selectedItemPrice));
quantPlus.setEnabled(true);
quantMinus.setEnabled(true);
quantCount=1;
quantity.setText(String.valueOf(quantCount));
addItem.setEnabled(true);
// Toast.makeText(getActivity().getApplicationContext(),selectedItem, Toast.LENGTH_LONG).show();
}
});
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
addItem.setEnabled(false);
Categories ct= new Categories();
ct= (Categories)spinner.getSelectedItem();
SoapCallClass s= new SoapCallClass();
adapter=new ItemsAdapter(getActivity(),s.getItemsForCategory(ct.TOUCHCODE));
quantCount=1;
quantity.setText(String.valueOf(quantCount));
itemName.setText("Select Item");
itemPrice.setText("0.00");
quantPlus.setEnabled(false);
quantMinus.setEnabled(false);
list.setAdapter(adapter);
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
}
});
quantPlus.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
quantCount++;
quantity.setText(String.valueOf(quantCount));
itemPrice.setText(String.valueOf(quantCount*selectedItemPrice));
}
}
);
quantMinus.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
if(quantCount>1)
quantCount--;
quantity.setText(String.valueOf(quantCount));
itemPrice.setText(String.valueOf(quantCount*selectedItemPrice));
}
}
);
return view;
}
OnAddItemPressed addItemPressed;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
addItemPressed=(OnAddItemPressed)getActivity();
addItem=(Button)getActivity().findViewById(R.id.btnAdd);
addItem.setOnClickListener(this);
}
@Override
public void onClick(View v) {
selectedItem.quantity= quantCount;
selectedItem.Ordered=false;
addItemPressed.onAddItemPressed(selectedItem);
addItem.setEnabled(false);
quantCount=1;
quantity.setText(String.valueOf(quantCount));
itemName.setText("Select Item");
itemPrice.setText("0.00");
quantPlus.setEnabled(false);
quantMinus.setEnabled(false);
}
}
class Items{
public String ItemName;
public int ItemCode;
public double Price;
public int quantity;
public int prevQuant;
public String RESCODE;
public int KOTDATE;
public int KOTNUB;
public int KOTTYP;
public int STEWCODE;
public String TBLNUB;
public int PAXPER;
public String PERSON;
public String SESSON;
public int SRLNUMB;
public float ITMQTY;
public float ITMRAT;
public float ITMVAL;
public int TAXSTR;
public String KITCOD;
public int MENTYP;
public int GRPCOD;
public int BILNUB;
public int UPDFLG;
public int BILSEQ;
public int LSTDAT;
public String LSTTIM;
public String USERID;
public float NCKPER;
public String MODNAM;
public String RORDER;
public boolean Ordered;
}
class ItemsAdapter extends BaseAdapter {
ArrayList<Items> itemList;
Context context;
ItemsAdapter(Context context, ArrayList<Items> itemsArray) {
itemList = new ArrayList<Items>();
this.context = context;
itemList=itemsArray;
}
@Override
public int getCount() {
return itemList.size();
}
@Override
public Object getItem(int position) {
return itemList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
class ViewHolder {
TextView txtView1;
TextView txtView2;
ViewHolder(View V) {
txtView1 = (TextView) V.findViewById(R.id.txtItemName);
txtView2=(TextView) V.findViewById(R.id.txtItemPrice);
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflator = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
View row = convertView;
ViewHolder holder = null;
if (row == null) {
row = inflator.inflate(R.layout.single_item, parent, false);
holder = new ViewHolder(row);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
Items it = itemList.get(position);
holder.txtView1.setText(it.ItemName);
holder.txtView2.setText(String.valueOf(it.Price));
return row;
}
}
class CategoriesAdapter extends BaseAdapter {
ArrayList<Categories> catList;
Context context;
CategoriesAdapter(Context context, ArrayList<Categories> catArray) {
catList = new ArrayList<Categories>();
this.context = context;
catList=catArray;
}
@Override
public int getCount() {
return catList.size();
}
@Override
public Object getItem(int position) {
return catList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
class ViewHolder {
TextView txtView1;
//TextView txtView2;
ViewHolder(View V) {
txtView1 = (TextView) V.findViewById(R.id.txtcatrel);
// txtView2=(TextView) V.findViewById(R.id.txtItemPrice);
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflator = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
View row = convertView;
ViewHolder holder = null;
if (row == null) {
row = inflator.inflate(R.layout.categorylyt, parent, false);
holder = new ViewHolder(row);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
Categories ct = catList.get(position);
holder.txtView1.setText(ct.Name);
return row;
}
}
@Override
public void onAddItemPressed(Items item){
FragmentManager manager= getFragmentManager();
SidePanelFragment sideObj= (SidePanelFragment) manager.findFragmentById(R.id.side_panel);
sideObj.getAddedItems(item);
}
下单代码
btnOrder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int i=0;i<itemsArray.size();i++){
if(!itemsArray.get(i).Ordered) {
// itemsArray.get(i).
itemsArray.get(i).Ordered = true;
}
}
adapter.notifyDataSetChanged();
}
});
adapter = new ItemsAdapter1(getActivity(), itemsArray);
adapter.notifyDataSetChanged();
list1.invalidateViews();
list1.setAdapter(adapter);
return view;
}
btnOrder.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
对于(int i=0;i),在项目本身上设置标志<强>有序< /强>,单击一次就将其重置为false。您应该考虑在别处管理“强”>“命令< /强>”标志,而不是在引用项本身上。
错误代码
这个代码片段解决了这个问题
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectedItem=new Items();
Items getItms=(Items)parent.getItemAtPosition(position);
selectedItem.ItemCode=getItms.ItemCode;
selectedItem.ItemName=getItms.ItemName;
selectedItem.Price=getItms.Price;
selectedItemName=selectedItem.ItemName;
selectedItemPrice=selectedItem.Price;
itemName.setText(selectedItemName);
itemPrice.setText(String.valueOf(selectedItemPrice));
quantPlus.setEnabled(true);
quantMinus.setEnabled(true);
quantCount=1;
quantity.setText(String.valueOf(quantCount));
addItem.setEnabled(true);
// Toast.makeText(getActivity().getApplicationContext(),selectedItem, Toast.LENGTH_LONG).show();
}
});
list.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
selectedItem=新项目();
Items getItms=(Items)parent.getItemAtPosition(position);
选择editem.ItemCode=getItms.ItemCode;
选择editem.ItemName=getItms.ItemName;
选择editem.Price=getItms.Price;
selectedItemName=selectedItem.ItemName;
selectedItemPrice=selectedItem.Price;
itemName.setText(selectedItemName);
itemPrice.setText(String.valueOf(selectedItemPrice));
quantPlus.setEnabled(true);
quantMinus.setEnabled(真);
quantCount=1;
quantity.setText(String.valueOf(quantCount));
addItem.setEnabled(真);
//Toast.makeText(getActivity().getApplicationContext(),selectedItem,Toast.LENGTH\u LONG.show();
}
});
看着你的眼睛,我的眼睛很痛UI@RandykaYudhistira我知道,是的!UI颜色方案稍后会更改,但你知道有什么可以帮助我处理代码的吗?我不知道,我没有很好地阅读你的问题。问题太长,图片颜色最差。你能总结一下你的问题,只包括你的问题出现的时间和地点吗occur@RandykaYudhistira问题的最后一部分描述了这个问题,那么我应该将selectedItem.Ordered=false;?正如我所说的,我建议创建一个新的容器对象Order,它包含要排序的项目列表。selectedItem.Ordered属性应该移到Order对象。