Как динамически менять предметы Spinner - PullRequest
4 голосов
/ 27 сентября 2011

У меня есть два счетчика.Страна и Город.Я хочу динамически изменять значения города при выборе страны.Я знаю, как создавать и инициализировать значения Страны, но не знаю, как устанавливать и изменять значения Города.

Любое руководство приветствуется.

ОБНОВЛЕНИЯ1 Проблема в том, что я не знаю, как обновить содержимое City Spinner.Я знаю слушателя и другие основы о том, как создать фиксированный счетчик.

Ответы [ 2 ]

5 голосов
/ 27 сентября 2011

Для второго счетчика используйте Адаптер над List<String> (или любым другим представлением вашего города).После изменения содержимого списка, вызовите notifyDataSetChanged на адаптере, и это будет делать.

3 голосов
/ 27 сентября 2011

Вам нужно получить программную ссылку на счетчик, примерно так:

     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.
   }

}

Наконец, вам нужно привязать слушателя к спиннеру страны следующим образом:

    spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

см. Здесь для справки: http://developer.android.com/resources/tutorials/views/hello-spinner.html

...