我想在运行时设置
android spinner项值.
这是我到目前为止:
final ArrayAdapter<String> calsListAdapter = new ArrayAdapter<String>( this,android.R.layout.simple_list_item_1,calendarNames); eventCalendarList.setAdapter(calsListAdapter); eventCalendarList.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> arg0,View arg1,int arg2,long arg3) { calendarChoosen = availableCals.get(arg2); } public void onNothingSelected(AdapterView<?> arg0) { Logger.d("Cal Choosen","fffffffffffffff"); } }); private List<AvailableCalendar> availableCals = new ArrayList<AvailableCalendar>(); private AvailableCalendar calendarChoosen;
但是没有设定值.怎么做到呢?
解决方法
我将在这里假设您基于List< CharSequence>创建Spinner的适配器.或类似的东西.您可以使用它来进行选择查找,例如:
String name = model.getName(); int index = list.indexOf(name); if (index != -1) spinner.setSelection(index);
显然,如果你的模型不包含任何“名称”数据,那么在Spinner中没有什么可以选择的,所以你可能想要添加一些逻辑来处理它.如果模型确实具有“名称”,则在原始列表中查找其索引,该列表用作适配器的数据源.仅在找到事件时,将微调器的选择设置为相同的索引.