user10990943
user10990943

Reputation:

How to select item from Spinner then do somthing on button click?

I have spinner with 3 items and I want to do different thing for each selected items, Like if the selected item is "add" then add 2 numbers via button click, I have implemented a code it works but not on button click how do I connect that.

This is my code.

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) {
                }

Thanks for any help.

Upvotes: 0

Views: 1125

Answers (2)

ppreetikaa
ppreetikaa

Reputation: 1237

Do not write the spinner.setOnItemSelectedListener inside the button.setOnClickListener.

First add the spinner.setOnItemSelectedListener and store the value in any integer.

Now compare the interger value at button.setOnClickListener and perform the operation.

Here's the code -

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;
    }
}
});

Upvotes: 0

hfarhanahmed
hfarhanahmed

Reputation: 307

As per my understanding you want the selected spinner item on button click so you can directly get the selected item by the spinner without any listener.

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

you can get selected item's ID, View, position or item itself by using default functions.

spinner.getSelectedItemId()
spinner.getSelectedItemView()
spinner.getSelectedItemPosition()
spinner.getSelectedItem()

Upvotes: 2

Related Questions