首页 > 解决方案 > For循环运行两倍的结果?

问题描述

我是安卓新手。我正在使用蓝牙为 printng 创建本机 MobilePOS Android 应用程序。这是我的代码:

private void showandadd() {
        /*String num="";
        num=num+String.valueOf(number);*/
        String string1="";
        String string2="";
        String string3="";


        if(num==""){
            Toast.makeText(this,"Wrong input!! try again", Toast.LENGTH_LONG).show();
        }
        if(flag==1) {
            getItem(directadd);
            if(blankflag!=1) {
                int updatedPrice = Integer.parseInt(this.price);
                int data = Integer.parseInt(this.num);
                if(data==0){
                    Toast.makeText(this,"Wrong input!! insert different quantity number", Toast.LENGTH_LONG).show();
                }else {
                    int d = updatedPrice * data;
                    this.price = d + "";

                    // String str = itemName + "      \t" + num + " No" + "      \t" + "Rs " + price;
                    printdetailsnew.add(itemName);
                    quantitynum.add(num);
                    amount.add(price);
                    num = "";
                    directadd = "";
                    flag = 0;
                    blankflag = 0;
                }
            }
            num = "";
            directadd = "";
            flag = 0;
            blankflag = 0;

        }else {
            getItem(directadd);
            if(blankflag!=1) {
                //String str = itemName + "      \t" + num + " No" + "      \t" + "Rs " + price;
                printdetailsnew.add(itemName);
                quantitynum.add("1");
                amount.add(price);
                num = "";
            }
            directadd="";
            blankflag=0;
        }
        for(int i=0;i<printdetailsnew.size();i++){
            string1=string1+ printdetailsnew.get(i)+"\t"+"\n";
            string2=string2 +"No."+ quantitynum.get(i)+"\t"+"\n";
            string3= string3 + amount.get(i)+"\n";

            result = printdetailsnew.get(i)+"\t" + "No."+ quantitynum.get(i)+"\t"+ amount.get(i)+"\n";

            System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+result);


        }

        this.selection.setText(string1);
        this.selection2.setText(string2);
        this.selection3.setText(string3);
        num="";
    }

有 3 个字符串分配给结果。当我按第二项时,我得到了两次结果。当我选择第一项获得“项目名称数量数量”格式时,例如 Tea 1qty 10rs...当我输入第二项输出时,将出现第一项+第一项+第二项显示如下:

Tea 1qty 10rs
Tea 1qty 10rs
Coffee 1qty 12rs

我想得到结果

Tea 1qty 10rs
Coffee 1qty 12rs

像这样......请任何人都可以帮助我

标签: androidsqlitepos

解决方案


一个简单的示例是使用一个标签并在每次添加新项目时附加到它。

而不是这个:

for(int i=0;i<printdetailsnew.size();i++){
        string1=string1+ printdetailsnew.get(i)+"\t"+"\n";
        string2=string2 +"No."+ quantitynum.get(i)+"\t"+"\n";
        string3= string3 + amount.get(i)+"\n";

        result = printdetailsnew.get(i)+"\t" + "No."+ quantitynum.get(i)+"\t"+ amount.get(i)+"\n";

        System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+result);


    }

    this.selection.setText(string1);
    this.selection2.setText(string2);
    this.selection3.setText(string3);
    num="";

将其更改为:

str = this.selection.getText().toString();
str += printdetailsnew.get(i)+"\t" + "No."+ quantitynum.get(i)+"\t"+ amount.get(i)+"\n";

this.selection.setText(str);
num="";

推荐阅读