Как сделать так, чтобы селектор элементов работал - PullRequest
0 голосов
/ 03 марта 2019
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 голосов
/ 03 марта 2019

Я не могу сказать, почему это утверждение if внутри onItemSelected().Все, что вам нужно сделать, это получить числовое значение из счетчика, после анализа текста,получить числовое значение EditText, добавить 2 значения и вернуть итоговое значение в 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:

Totalprice.setText("0.0");
...