如何连接2个不同的微调器

时间:2010-09-20 16:19:33

标签: android listener spinner

我正在尝试将2个微调器连接在一起。意思是,第二个微调器内的项目将取决于为第一个微调器选择的任何项目。

这是主java文件中的代码。

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
        this, R.array.planets_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

}

这是MyOnItemSelectedListener.java

中的代码

public class MyOnItemSelectedListener实现OnItemSelectedListener {

public void onItemSelected(AdapterView<?> parent,
    View view, int pos, long id) {
  Toast.makeText(parent.getContext()), "The planet is " +
      parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
}

public void onNothingSelected(AdapterView parent) {
  // Do nothing.
}

}

因此onItemSelected函数将打印出在屏幕上第一个微调器中选择的项目。但是,我无法弄清楚如何根据第一个微调器内的值完全创建第二个微调器。

我知道在onItemSelected中应该有一些东西需要完成,但由于我是Java Android的新手,我无法理解它。

你能帮助我吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

你应该做的事与你在onCreate中所做的非常相似,只能与其他微调器一样。例如:

List<String> values = findValuesBySelection(parent.getItemAtPosition(pos).toString());
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
        this, values, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter);