如何动态更改Spinner的项目

时间:2011-09-27 00:29:07

标签: android dynamic android-spinner

我有两个旋转器。国家和城市。 我想在国家选择时动态更改City的值。 我知道如何创建和初始化Country的值,但不知道如何设置和更改City的值。

感谢任何指导。

UPDATES1 问题是,我不知道如何更新City Spinner的内容。我知道如何创建一个固定的微调器的听众和其他基础知识。

2 个答案:

答案 0 :(得分:5)

对于第二个微调器,使用适配器超过List<String>(或任何城市表示形式)。更改列表的内容后,在适配器上调用notifyDataSetChanged,即可。

答案 1 :(得分:3)

您需要获得对微调器的编程引用,如下所示:

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

然后要更新您所在城市的值,请使用OnItemSelectedListener,如下所示:

public class MyOnItemSelectedListener implements OnItemSelectedListener {

   public void onItemSelected(AdapterView<?> parent,
      View view, int pos, long id) {
          //update content of your city spinner using the value at index,
          // id, or the view of the selected country. 
      }
   }

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

}

最后,您需要将侦听器绑定到country spinner,如下所示:

    spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

请参阅此处以供参考:http://developer.android.com/resources/tutorials/views/hello-spinner.html