我正在Xamarin中编写一些代码,但是我认为我的问题在Java中将是相似的。 在我的主要活动中,我没有几个微调器,并且我想在更改项目时触发一些操作。
假设微调器拥有一个名称列表,当选择一个项目时要执行的操作是显示我在微调器中选择的名称的祝酒词。
当我第一次启动该应用程序时,微调器中会填入一些名称,并在选择项目时放下一行以触发吐司
spinNames.ItemSelected += SpinNames_ItemSelected;
和方法
private void SpinNams_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
{
// toast message with the selected name
}
问题在于,此事件被多次触发,导致实际上始终有一个选定的项目。 我如何确保仅在第一次(活动启动时才触发事件,因此将首次填充并显示微调器)并且仅在微调器中选择了新项目时才触发该事件。 这样,当我实际上在微调器中进行新选择时,该事件仅触发一次。 我以为我可以使用一些全局变量来存储当前选择,以便可以将事件的触发条件设为微调器中选择的项目,以不同于全局变量存储的内容。 但是似乎太复杂了,因为当我有多个微调器时,我可能要处理许多新的全局变量。有什么更聪明的方法可以实现我的目标?