【发布时间】:2020-01-15 00:37:00
【问题描述】:
我是 Android 新手。我正在使用蓝牙为 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
像这样......请任何人都可以帮助我
【问题讨论】:
-
您确定数据没有两次添加到列表中吗?
-
您的问题是,每次添加新项目时,您都在循环浏览您添加的 所有 项目。您要确保每个标签只循环 一个 项。至少这是我从你想要达到的目标中理解的。为什么你有 3 个字符串和 3 个标签?如果您正在制作 POS 系统,您可能希望动态生成创建的标签数量,或者只使用 1 个标签并在每次添加新项目时添加新行。如果您可以确认这是您想要实现的目标,我可以尝试向您展示一个示例。
-
好的..有任何示例吗?
-
我正在发送打印活动结果将类似于上述格式