问题
我的问题是,在我的SpinnerArrayAdapter
更改数据后,我的Spinner
对dropDownList
的商品点击没有反应。
然而,在方向改变发生后,一切正常(?!)。
编辑:我注意到它确实捕获了项目点击,但没有在Spinner
上表示/显示它。因为在更改方向后,所选项目会显示在Spinner
建筑
我已将AutoCompleteTextView(ACTV)
与AutoCompleteAdapter implementing Filterable
相关联。将部分数据输入ACTV
后,结果会传递到与SpinnerArrayAdapter
相关联的Spinner
。
customListener
上的AutoCompleteAdapter
设置与SpinnerArrayAdapter
相关联,负责在它们之间传递数据。
这种结构背后的原因是用户可以选择两步。选择ACTV
中的数据时选择一个下拉菜单,然后选择第二个数据,以防他改变主意。
因此,您可以将POSTCODE置于ACTV
选择的省份中,当您错过点击/改变思维而不必再次进入POSTCODE时,可以更改省份。
CODE
这是负责SpinnerArrayAdapter
内部数据更改的部分。
@Override
public void setCitiesFromPostcode(ArrayList<String> cities) {
this.clear();
this.addAll(cities);
notifyDataSetChanged();
}
答案 0 :(得分:2)
我遇到与ArrayAdapter
类似的问题。我只是将其更改为BaseAdapter
并且它有效。不是真的知道原因是什么,但它在ArrayAdapter
的实施中的某个地方。
答案 1 :(得分:2)
两个常见原因:
class MyAdapter extends BaseAdapter implements SpinnerAdapter { }
类。