根据其他Spinner设置Spinner

时间:2014-05-09 07:01:42

标签: java android android-spinner

我正在为Android制作应用程序。我有2 spinner s,当我在第一个微调器(simpleSpinner)中选择一个项目时,它需要显示它(我已经完成了)但是当我从第二个微调器中选择一个时({ {1}})我希望我的multiSpinner返回到微调器中的第一个项目。反过来说,当我在simpleSpinner中选择一个时,我希望我的simpleSpinner显示我multiSpinner中的第一个项目。我该怎么做?

simpleSpinner

代码现在可以使用了!感谢@BlackPanther

1 个答案:

答案 0 :(得分:1)

您应该为Spinners使用单独的侦听器。由于您正在为Spinners这段代码使用相同的侦听器

if("Rouge".equals(simpleText)){
    spMulti.setSelection(0);
}

导致您的问题。

当您在第一个Spinner中首次选择“Rouge”时,第二个微调器设置为“Wahie”,现在当您尝试更改第二个Spinner中的项目时,相同的方法是调用,因为第一个Spinner的选择在“Rouge”中,第二个Spinner再次设置为“Wahie”..

onCreate方法中执行类似的操作

@Override
public void onCreate(Bundle savedInstanceState) {
  //your code

  addListenerOnSpinnerItemSelection();

  //more of your code
}

public void addListenerOnSpinnerItemSelection() {
  spMulti = (Spinner) findViewById(R.id.spMulti);
  spMulti.setOnItemSelectedListener(new CustomOnItemSelectedListener());
}

您可以创建实现OnItemSelectedListener

的自定义侦听器类

this article。您可以根据自己的需要进行调整并进行定制。

您可以通过以下代码为两个微调器使用相同的侦听器

Spinner spinner = (Spinner) parent;
 if(spinner.getId() == R.id.spSimple)
 {
   //do this                    
 }
 else if(spinner.getId() == R.id.spMulti)
 {
   //do this
 }