我在特定行的listview控件中有多个Spinners。我从WebService动态填充所有微调器,并且所有微调器值都可以在所选项上更改。
进出口。我有3个国家和州和城市的旋转器然后所有这3个旋转器从WS填充,而用户选择国家然后在countryselecteditem更改州和城市的所有数据。并在州选择的项目城市数据变化...
此时我滚动并继续该行,getView()
调用所有3个选定项目并按所选项目填充所有适配器。
如何在listview中处理3个微调器?
class SpinnersStateInListItem
{
private int countrySelectedPosition=0;
private int stateSelectedPosition=0;
private int citySelectedPosition=0;
//here you need to generate respective getters and setter methods.
}
//执行以下代码将SubClassArrayAdapter设置为listview,该视图是从ArrayAdapter类派生的,您可以在其中自定义视图
SubClassArrayAdapter<SpinnersStateInListItem> = new SubClassArrayAdapter<SpinnersStateInListItem>(context,resourceid,listof SpinnersStateInListItem Generic type);
在SubClassArrayAdapter类的getView()内部,创建3个微调器对象并将数组适配器设置为第一个Spinner,然后将OnItemSelectedListeners设置为3个微调器。然后在第一个Spinner OnItemSelected方法中将ArrayAdapter设置为2nd Spinner,它将包含在第一个微调器中选择的State的State列表。然后在第二个Spinners OnItemSelected方法中将数组适配器设置为第三个Spinner,该方法包含根据所选国家/地区选择的城市列表。在这里,您应该根据所选项目过滤数据。当选择Items时,立即将它们保存到SpinnersStateInListItem各自的对象,这样即使你重新加载listview,所有状态的状态都将保持不变。例如如下。
OnItemSelected()
{
if(v==firstspinner)
{
listofSpinnersStateinListItem.get(listitemposition).setCountrySelectedPosition(spinnerselectposition);
}
}
与上述国家和城市一样。
希望这会帮助你。