如何使用按钮 select 微调器中的项目

How to select an item in a spinner using a button

我创建了一个包含 5 个项目的 spinner,我还创建了 5 个按钮。我想要做的是将一个按钮关联到微调器中的一个项目。所以当我点击一个按钮时,相应的项目就会被选中。例如:

我的微调器中有 5 个项目:

hey, hi, ho, hello, sup

我有 5 个按钮:

btn1, btn2, btn3, btn4, btn5

btn5 关联到 sup。因此,当我单击 btn5 时,应该在微调器中选择 sup。我该怎么做?

你必须使用

spinner.setSelection(position);

在每个按钮上设置一个 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    
}

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

  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 个点击事件。

您可以根据自己的喜好通过不同的方式进行此操作。我认为使用它您将拥有更多控制权。

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