【问题标题】:How to select an item in a spinner using a button如何使用按钮选择微调器中的项目
【发布时间】:2015-04-27 16:57:59
【问题描述】:

我创建了一个包含 5 个项目的 spinner,还创建了 5 个按钮。我想要做的是将按钮与微调器中的项目相关联。因此,当我单击一个按钮时,将选择相应的项目。例如:

我的微调器中有 5 件物品:

hey, hi, ho, hello, sup

我有 5 个按钮:

btn1, btn2, btn3, btn4, btn5

btn5sup 相关联。所以当我点击btn5时,应该在微调器中选择sup。我该怎么做?

【问题讨论】:

标签: android button spinner


【解决方案1】:

你必须使用

spinner.setSelection(position);

【讨论】:

    【解决方案2】:

    如果您需要为微调器输入硬代码值,那么您需要这样做

      Button0.setOnClickListener(new View.OnClickListener() {
           public void onClick(View v) {
              // Here you need specify which item of spinner you need to select.
             spinner.setSelection(0);
           }
        });
    

    如果您有 5 个按钮,则需要使用 setSelect(position) 事件创建 5 个单击事件。

    您可以根据自己的喜好通过不同的方式来做到这一点。我认为使用它您将拥有更多控制权。

    对于动态微调器,您需要不同的逻辑,您需要在其中动态创建按钮并使用自定义或基本适配器的索引动态添加点击事件。

    【讨论】:

      【解决方案3】:

      在每个按钮上设置一个onClickListener,以button id作为参数调用以下函数:

      function switchSpinner(int id){
          Spinner spinner=(Spinner) findViewById(R.id.spinner);
          int pos=-1;
          switch(id){
              R.id.btn1:
                  pos=0;
                  break;
              R.id.btn2:
                  pos=1;
                  break;
              R.id.btn3:
                  pos=2;
                  break;
              R.id.btn4:
                  pos=3;
                  break;
              R.id.btn5:
                  pos=4;
                  break;  
          }
          spinner.setSelection(pos);
          spinner.requestLayout() //add this only if the spinner does not change    
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多