Как выбрать предмет из Spinner и сделать что-нибудь по нажатию кнопки? - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть spinner с 3-мя предметами, и я хочу сделать разные вещи для каждого выбранного элемента. Например, если выбранный элемент «добавить», затем добавить 2 числа нажатием кнопки , я реализовалкод это работает, но не по нажатию кнопки, как мне подключить это.

Это мой код.

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

                    String uints = parent.getItemAtPosition(position).toString();
                    switch (position) {

                        case 0:
                            double r1 = Double.parseDouble(input1.getText().toString());
                            double r2 = Double.parseDouble(input2.getText().toString());
                            double rout = r1 + r2;
                            textView.setText(Double.toString(rout));
                            break;

                        case 1:

                            double r12 = Double.parseDouble(input1.getText().toString());
                            double r22 = Double.parseDouble(input2.getText().toString());
                            double rout2 = r12 - r22;
                            textView.setText(Double.toString(rout2));

                            break;
                        case 2:
                            double r13 = Double.parseDouble(input1.getText().toString());
                            double r23 = Double.parseDouble(input2.getText().toString());
                            double rout3 = r13 / r23;
                            textView.setText(Double.toString(rout3));
                            break;
                    }
                }

                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                }

Спасибо за любую помощь.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Насколько я понимаю, вы хотите, чтобы выбранный элемент прядильщика был нажатием кнопки, чтобы вы могли напрямую получить выбранный элемент прядильщиком без какого-либо слушателя.

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               switch(spinner.getSelectedItemPosition()){
                    //Do whatever you want
               }
            }
}

вы можете получить идентификатор выбранного элемента, вид, положениеили сам элемент, используя функции по умолчанию.

spinner.getSelectedItemId()
spinner.getSelectedItemView()
spinner.getSelectedItemPosition()
spinner.getSelectedItem()
0 голосов
/ 13 февраля 2019

Не пишите spinner.setOnItemSelectedListener внутри button.setOnClickListener.

Сначала добавьте spinner.setOnItemSelectedListener и сохраните значение в любом integer.

Теперь сравните intergerзначение на button.setOnClickListener и выполнить операцию.

Вот код -

int selectedPosition = 0;
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()

{
    @Override
    public void onItemSelected (AdapterView < ? > parent, View view,int position, long id){
    selectedPosition = position;
}

    @Override
    public void onNothingSelected (AdapterView < ? > parent){
}
});


    button.setOnClickListener(new View.OnClickListener()

{
    @Override
    public void onClick (View v){
    switch (selectedPosition) {

        case 0:
            double r1 = Double.parseDouble(input1.getText().toString());
            double r2 = Double.parseDouble(input2.getText().toString());
            double rout = r1 + r2;
            textView.setText(Double.toString(rout));
            break;

        case 1:

            double r12 = Double.parseDouble(input1.getText().toString());
            double r22 = Double.parseDouble(input2.getText().toString());
            double rout2 = r12 - r22;
            textView.setText(Double.toString(rout2));

            break;
        case 2:
            double r13 = Double.parseDouble(input1.getText().toString());
            double r23 = Double.parseDouble(input2.getText().toString());
            double rout3 = r13 / r23;
            textView.setText(Double.toString(rout3));
            break;
    }
}
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...