Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果项目名称相同,则Arraylist重复条目_Java_Android_Listview_Android Fragments_Arraylist - Fatal编程技术网

Java 如果项目名称相同,则Arraylist重复条目

Java 如果项目名称相同,则Arraylist重复条目,java,android,listview,android-fragments,arraylist,Java,Android,Listview,Android Fragments,Arraylist,我在代码中遇到了一个问题 场景是 从微调器添加项目时,它将添加到边列表中 在第一次按下订单按钮之前,其文本设置为蓝色,您也可以修改数量 -添加第二项 -按下订单按钮后,订单信息将发送到db,文本设置为黄色。订单下达后,您将无法修改项目 -现在,您可以向下一个订单添加一个不同的项目 -然后你下第二个订单 -如果你添加了相同的物品“摩根船长”,那么它就会添加到第二份订单中 下面是处理上述操作的所有代码 我使用两个片段main fragment和SideFragment SidePanelFr

我在代码中遇到了一个问题

场景是

从微调器添加项目时,它将添加到边列表中 在第一次按下订单按钮之前,其文本设置为蓝色,您也可以修改数量

-添加第二项

-按下订单按钮后,订单信息将发送到db,文本设置为黄色。订单下达后,您将无法修改项目

-现在,您可以向下一个订单添加一个不同的项目

-然后你下第二个订单

-如果你添加了相同的物品“摩根船长”,那么它就会添加到第二份订单中

下面是处理上述操作的所有代码

我使用两个片段main fragment和SideFragment

SidePanelFragment.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);


}
在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对象。