Activity1
有一个listView
。单击一个项目(比如项目3)将启动Activity2
。点击后Activity2
有一个后退按钮会将用户带回Activity1
。我想要实现的是在用户返回Activity1
时突出显示项目3,以便用户知道在哪里继续。 (也许我需要将重点放在第3项上。)
编辑:以下代码有效。
public void onResume()
{
super.onResume();
//lastSelectedPosition saved in OnItemClickListener
lv.setSelection(lastSelectedPosition);
lv.requestFocusFromTouch();
}
答案 0 :(得分:2)
很简单。只需在单击列表以启动新活动时,将列表中单击的项目位置保存到字段中。
之后在onResume()方法中使用myList.setSelection(savedPosition);
对于突出显示,好焦点工作有点不好,特别是如果你有一些更复杂的行(按钮,复选框等)和列表旁边的其他ui元素可以带走焦点。我相信实现这一目标的最佳方法是将onResume上的特定项目的背景设置为突出显示的项目,并覆盖onScroll侦听器,以便在滚动列表时将背景更改为默认值。实际上它是一种解决方法,但它只能在100%的情况下与仅关注项目相反。加上也许你可以在视图上添加动画,这样你就可以让它看起来非常漂亮和流畅。