Spinner spnLocale = (Spinner)findViewById(R.id.spnLocale);
spnLocale.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
// Your code here
}
public void onNothingSelected(AdapterView<?> adapterView) {
return;
}
});
Примечание: Помните одну вещь.
Событие Spinner OnItemSelectedListener
будет выполнено дважды:
Попытайтесь различить эти два по используя переменную флага.
Во-первых, не требуется, чтобы мы указали причину, по которой не не реализовали функцию. Особенности чрезвычайно дороги; должно быть обоснование для реализации функции, а не обоснование для , а не реализации функции.
Во-вторых, C # не является клоном C ++ или C. Просто потому, что функция есть на каком-то другом языке, не является причиной для ее помещения в C #.
В-третьих, «const» глубоко трагически нарушен в C и C ++. «const» не дает вам гарантии, на которую вы действительно можете положиться. Если вы вызываете метод, который принимает константную ссылку, то у вас нет никаких гарантий, что метод соблюдает константность; у метода есть много способов изменить константную ссылку. Если вы являетесь потребителем константной ссылки, то у вас нет гарантии, что базовый объект на самом деле не будет мутировать произвольно. Поскольку контракт не применяется ни для вызывающей, ни для вызывающей стороны, он намного слабее любой другой гарантии, которую мы хотели бы дать в системе типов. Мы не хотели бы копировать такую сломанную систему.
В-четвертых, введение константности в систему типов CLR означает, что каждый язык должен будет использовать ту же самую реализацию константности; так как разные языки имеют разное значение для константности, это сделало бы труднее перенести больше языков в CLR, а не легче .
Есть много причин, чтобы не делать эту чрезвычайно дорогую функцию, и очень мало причин, чтобы сделать это. Дорогие, неоправданные функции не реализуются.