我正在尝试使用微调器在ActionBar
我的应用程序中提供帐户上下文。在列表的最后位置还有一个“添加帐户”元素。我在用着ABS
和配置微调器外观.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
到目前为止,一切都很好。
用户第一次启动应用程序时,这spinner
将是空的,唯一的选择是“添加帐户”,这也是在微调器当前选择中可见的文本。我想要实现的是在用户单击spinner
(不是在打开的列表中,而是在微调器本身)时将用户重定向到新的帐户活动。在我的适配器中,我可以检测到它并像这样打开屏幕:
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
...
}
if (parent.getClass() == Spinner.class && ((Spinner) parent).getCount() == 1) { //"Hack" for initial click on "Add Account" in the spinner when it's empty
Intent intent = new Intent(context, AccountPreferenceActivity.class);
((HomeActivity) context).startActivityForResult(intent, HomeActivity.ACTIVITY_PREFERENCE_ACCOUNT);
}
...
return convertView;
}
我的问题是,在填写新表单并返回主屏幕后,微调器将打开,这是一种丑陋的用户体验。
我的第一次尝试是避免在 getDropDownView 方法中打开微调器,但未能实现。然后我尝试了各种肮脏的解决方法(makespinner
消失/重新出现,关注屏幕中的另一个字段,模拟后退按钮......),但似乎没有任何效果。
你知道如何实现吗?
谢谢