简体   繁体   English

如何从Spinner中选择项目,然后单击一下按钮?

[英]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. 我有3个项目的spinner ,并且我想为每个选定的项目做不同的事情,就像选定的项目是“添加”,然后通过单击按钮添加2个数字一样 ,我实现了一个有效的代码,但是在单击按钮时不起作用连接。

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. 谢谢你的帮助。

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. 您可以使用默认功能获取所选商品的ID,视图,位置或商品本身。

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

Do not write the spinner.setOnItemSelectedListener inside the button.setOnClickListener . 不写spinner.setOnItemSelectedListener里面button.setOnClickListener

First add the spinner.setOnItemSelectedListener and store the value in any integer . 首先添加spinner.setOnItemSelectedListener并将值存储在任何integer

Now compare the interger value at button.setOnClickListener and perform the operation. 现在比较interger的价值button.setOnClickListener和执行操作。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 单击按钮android studio时如何从微调器中读取 - How to read from a spinner upon the click of a button android studio 当项目在strings.xml中列出而不是在Android Studio中作为静态时,如何删除在Spinner中选择的项目按钮? - How to delete the item selected in a Spinner on button click when the items are listed in strings.xml and not as static in Android Studio? 如果选择了特定项目,如何从微调器中获取 select 项目并更改图像? - How get select item from a spinner and change image if a specific item is selected? 单击jaredrummler微调器中的按钮时如何清除微调器? - How to clear spinner when click a button in the jaredrummler spinner? 如何使用另一个微调器从微调器中删除项目 - How To Remove Item from Spinner using another spinner Android Studio通过微调器选择从SQLite数据库中选择项目 - Android Studio Select item from SQLite database by spinner selection 无法 android 中的 select 微调器项目 - Unable to select spinner item in android 如何使Android Spinner从tblContacts中选择 - How to make android spinner select from tblContacts 选择微调器项目后,我希望按钮文本成为选定的微调器项目。 或者我们可以在 string.xml 中做到这一点吗? - When the spinner item is selected, I want the button text to be the selected spinner item. or can we just do it in string.xml? 单击“微调器”项时没有任何反应 - Nothing happens when I click on the Spinner item
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM