使用arraylist检查editText,不允许用户输入相同的数据



用户可以添加产品&来自EditText的数量,在按下ADD按钮时显示在ListView中,现在我不希望用户再次输入相同的产品。。已从数据库中提取数据。。。需要帮助,请在下面查找代码!

addBtn.setOnClickListener(new View.OnClickListener() {
               public void onClick(View v) {
                    String nullProduct = product.getText().toString();
                     nullQuant = quantity.getText().toString();
                    if (nullProduct.matches("") || nullQuant.matches("")) {
                        Toast.makeText(InvoiceView.this, "Please choose Product and Quantity", Toast.LENGTH_LONG).show();
                        return;
                    } else {
                        quant = Integer.parseInt(quantity.getText().toString());      // Calculation of quantity + unit price
                        unitprice = Double.parseDouble(prounitprice);
                        result = quant * unitprice;
                        Result = String.valueOf(result);
                                                // Total value of sales order
                        Map<String, String> dataFinal = new HashMap<String, String>();
                        dataFinal.put("A", proname);
                        dataFinal.put("B", String.valueOf(quant));
                        dataFinal.put("C", String.valueOf(unitprice));
                        dataFinal.put("D", Result);
                        proFinal.add(dataFinal);
                        String[] from = {"A", "B", "C", "D"};
                        int[] listviews = {R.id.lblproname, R.id.lblproqty, R.id.lblprorate, R.id.lblprototal};
                        final SimpleAdapter ADA = new SimpleAdapter(InvoiceView.this,
                                proFinal, R.layout.lsttemplate, from,
                                listviews);
                        lstpro.setAdapter(ADA);
                        int count = proFinal.size();
                        for (int i = 0; i < count; i++) {
                            HashMap<String, String> map = (HashMap<String, String>) proFinal.get(i);
                            String sValue;
                            if (proFinal.size() > 1) {
                                sValue = map.get("A");
                                if (nullProduct.equals(sValue)) {
                                    Toast.makeText(InvoiceView.this, "Product already added", Toast.LENGTH_SHORT).show();
                                } else {
                             // incomplete code section
                                }
                            }
                        }
                        }                      
                        product.setText("");
                        quantity.setText("");
                }
            });
    }

将产品名称保存为哈希映射中的唯一密钥。将地图密钥与输入的产品进行比较,如果地图上没有您输入的产品作为密钥,则保存它。否则显示类似"产品已经存在…!!"的消息。

尝试以下代码:

  Map<String, String> dataFinal = new HashMap<String, String>();
    dataFinal.put("A", "name");
    dataFinal.put("B", "String.valueOf(quant)");
    dataFinal.put("C", "String.valueOf(unitprice)");
    dataFinal.put("D", "Result");
    for (int i = 0; i < dataFinal.size(); i++) {
        String yourEnteredProduct = "D";//Assume new product D which is already existed,so you should not save it
        if (!dataFinal.containsKey(yourEnteredProduct)) {
            //Save you newly entered product
        } else {
            //Product already exists
        }
    }

希望它能帮助你。

最新更新