如何使微调器上的项目选择器起作用

时间:2019-03-03 18:44:50

标签: java android if-statement android-spinner

String [] product = new String [] {
            "Item A - 15$",
            "Item B - 12$",
            "item C - 30$",
            "Item D - 40$",

    };

            ArrayAdapter<String> adapter = new
            ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,product);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            final Spinner spin = (Spinner)findViewById(R.id.spinner1);
            spin.setAdapter(adapter);

            spin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
                public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long l){
                    if(spin.getSelectedItem().equals(0))
                    {
                        Double addprice = 15.0;
                        Totalprice.setText(Double.toString(currentprice)+ 
                        Double.toString(addprice));
                    }
                }

              public void onNothingSelected(AdapterView<?> adapterView) {
                    return;
                } 
            }); 

我想做的是当用户从微调器中选择项目A时,Totalprice编辑文本框将在其上添加价格。例如,当前价格为0.0,用户选择物料A,它将显示为10.0。这也适用于其他商品,这意味着只要用户选择任何商品,价格就会自动添加到Totalprice。

我成功添加了微调器,但是当我在微调器上选择任何项目而无法使用时,任何人都可以提供解决方案或其他更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:0)

我不知道为什么onItemSelected()中有if语句。
您需要做的就是从微调器中获取数字值,在解析文本后,
获得EditText的数字值,将2个值相加,然后将总数设置回{{1} }。

EditText

编辑:
在此行之后:

    public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long l){
        String s  = adapterView
                .getItemAtPosition(pos).toString()
                .split("-")[1].trim()
                .replace("$", "");
        double addprice = Double.parseDouble(s);
        double currentprice = 0.0;
        try {
            currentprice = Double.parseDouble(Totalprice.getText().toString());
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
        double total = currentprice + addprice;
        Totalprice.setText(String.valueOf(total));
    }

spin.setAdapter(adapter); 的文本设置为EditText

0.0