我有两个活动,在每个活动中,我都有一个使用适配器的列表。
我想把这个作为一项技能:
匹配两个列表的滚动状态(ListView(s))。
假设在活动1中,我有50只动物的列表,在活动2中,我有50种活动中每种动物喜欢吃的食物的列表(一对一)。
现在,当我在第一个活动中选择第30个动物时,第二个活动打开时,不仅选择了第30个项目(Selector),而且滚动状态也相同。然后在第二个活动中,我选择了第二个食物项目,当返回到第一个活动时,不仅第二个动物被选中并突出显示,它也被滚动到该项目。
有两个方法与列表的焦点管理相关联。您必须确保列表中也没有onSelectedListener,这样就不会有任何活动的不必要触发器。
- list.setSelection(指数);//直接移动到索引
- list.smoothScrollToPosition(指数);//滚动到索引
在saveInstanceState上的包中记录一个活动的索引,并在导航的两个方向上将其传递到目标活动。