Android studio 如何从微调器中选择项目,然后单击按钮进行操作?

Android studio 如何从微调器中选择项目,然后单击按钮进行操作?,android-studio,android-spinner,buttonclick,Android Studio,Android Spinner,Buttonclick,我有一个带有3个项目的微调器,我想为每个选定的项目做不同的事情,比如,如果选定的项目是“添加”,然后通过按钮单击添加2个数字,我已经实现了一个代码,它可以工作,但不是在按钮单击时如何连接 这是我的密码 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { spinner.setOnItem

我有一个带有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) {
                }
button.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
字符串uints=parent.getItemAtPosition(position.toString();
开关(位置){
案例0:
double r1=double.parseDouble(input1.getText().toString());
double r2=double.parseDouble(input2.getText().toString());
双路由=r1+r2;
setText(Double.toString(rout));
打破
案例1:
double r12=double.parseDouble(input1.getText().toString());
double r22=double.parseDouble(input2.getText().toString());
双路2=r12-r22;
setText(Double.toString(rout2));
打破
案例2:
double r13=double.parseDouble(input1.getText().toString());
double r23=double.parseDouble(input2.getText().toString());
双路3=r13/r23;
setText(Double.toString(rout3));
打破
}
}
@凌驾
未选择公共无效(AdapterView父级){
}

谢谢您的帮助。

不要在
按钮内编写
微调器。setOnItemSelectedListener
。setOnClickListener

首先添加
微调器。setOnItemSelectedListener
并将值存储在任何
整数中

现在比较
按钮处的
integer
值。设置ClickListener
并执行该操作

这是密码-

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;
    }
}
});
int-selectedPosition=0;
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener()
{
@凌驾
已选择公共位置(AdapterView<?>父级、视图、整型位置、长id){
selectedPosition=位置;
}
@凌驾
未选择公共无效(AdapterView<?>父级){
}
});
setOnClickListener(新视图.OnClickListener()
{
@凌驾
公共void onClick(视图v){
开关(选定位置){
案例0:
double r1=double.parseDouble(input1.getText().toString());
double r2=double.parseDouble(input2.getText().toString());
双路由=r1+r2;
setText(Double.toString(rout));
打破
案例1:
double r12=double.parseDouble(input1.getText().toString());
double r22=double.parseDouble(input2.getText().toString());
双路2=r12-r22;
setText(Double.toString(rout2));
打破
案例2:
double r13=double.parseDouble(input1.getText().toString());
double r23=double.parseDouble(input2.getText().toString());
双路3=r13/r23;
setText(Double.toString(rout3));
打破
}
}
});

据我所知,您希望在单击按钮时显示选定的微调器项目,以便您可以通过微调器直接获取选定项目,而无需任何侦听器

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               switch(spinner.getSelectedItemPosition()){
                    //Do whatever you want
               }
            }
}
您可以使用默认函数获取所选项目的ID、视图、位置或项目本身

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

我试过这样做,因为我知道应用程序在启动时崩溃。但不确定我放在按钮上的比较是什么意思。setClick textView.setText(Double.toString(value));哪个值是我存储在交换机中的Doublecase@Ajed据我所知,我已经更新了代码。