我目前正在 Android 中实现一个 Spinner,并且无法将两个数组与 Spinner 链接——一个用于当 Spinner 未展开时,一个用于当它展开时。
所以微调器在未展开时会如下所示:
当它展开时,链接到它的数组从字符串的缩短版本变为长版本。
我曾考虑在触摸 Spinner 时更改数组,然后在取消时将其更改回来,但我认为这最终会变得混乱,或者创建一个看起来像微调器的按钮,这会打开一个自定义 ListView 对话框充当自定义微调器,但这似乎有点矫枉过正。有没有更简单的方法?
你可以实现自己的适配器来达到这个效果。覆盖返回“展开”视图的 getView() 和返回“折叠”视图的 getDropDownView()。不要忘记利用 convertView。
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), 0, objects) {
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
//inflate and return the view you want to see as the non-expanded droplist
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//inflate and return the expanded view
}
};