Reputation:
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
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
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