`
gryphone
  • 浏览: 433727 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

ListView 记住上次选中的item

 
阅读更多

ListView 记住上次选中的item

 

这句话描述的可能抽象点 举个例子吧:

有个显示所有联系人列表的ListView 现在要求如下:每次关闭该Activity 再打开之 要求始终显示上次选中的item 为什么会有这个要求?

 

因为ListView 默认是全部成员都显示的 而Activity可视面积有限 这就会导致一些在后面的item 在刚打开时没有显示 只有通过向下滚动 才能使之显示

 

而现在就是要:省去滚动操作 刚进入就显示上次的item 如何做?

1. SharePreference 用于保存最后选中的item id 如何做:

* 定义全局int id 用于记录选中的item id

* 在Activity::onDestroy() 里面 保存上面的id

2. 每次打开该Activity 在Activity::onCreate() 最后部分 添加如下代码:
  ListView list = ....;
   
   // do some initial working

   list.setSelection(id);

 

 上面代码有效的原因是:

 

设置其setSelection(int position) 后 如果该position不处于屏幕 会自动滚动以使之可见!

 

 

补充:以上原理仅为揣测 是否实际有效 没有验证 如果不行的话 欢迎跟帖 一起讨论之!

分享到:
评论
2 楼 gryphone 2010-03-26  
lveyo 写道
我觉得第二步放在onResume()方法里更合适。

tell me why? LOL~~
1 楼 lveyo 2010-03-26  
我觉得第二步放在onResume()方法里更合适。

相关推荐

    ListView默认Item选中状态

    ListView的默认行为是不设置任何项为选中状态,但有时我们希望在应用启动时,第一个Item能自动呈现出选中效果,以引导用户或者突出初始焦点。本教程将深入讲解如何实现ListView的第一个Item的默认选中状态。 首先,...

    ListView选中item颜色改变

    "ListView选中item颜色改变"是常见的需求,它涉及到ListView的交互设计,使得用户可以通过视觉反馈感知到所选中的条目。本篇文章将深入探讨如何实现这个功能。 首先,我们需要了解ListView的基本工作原理。ListView...

    ListView保留item选中效果

    然而,在滚动ListView时,用户可能会遇到一个问题:当ListView滚动时,之前选中的item可能会失去选中状态,这给用户体验带来了不便。"ListView保留item选中效果"这个主题正是针对这个问题,旨在探讨如何在ListView...

    listview item选中删除,全选,取消

    "listview item选中删除,全选,取消"这个主题涉及到ListView中的多选操作、删除功能以及全选和取消全选的实现。接下来,我们将深入探讨这些知识点。 1. 多选模式(Multiple Choice Mode): 在ListView中,为了...

    listview滑动保存选中状态

    记住,关键在于正确地保存和恢复每个item的状态,同时充分利用ListView的复用机制。在实际项目中,还可以根据需求进一步优化,比如使用Parcelable或Serializable来保存更复杂的item状态,或者使用数据库或...

    android中设置ListView的选中的Item的背景颜色

    针对这一需求,我们需要自定义ListView的选中项背景颜色,以保持选中状态的视觉效果。 要实现这一功能,首先我们需要创建一个自定义的ListView。这通常涉及到以下几个步骤: 1. **创建自定义Adapter**:ListView的...

    删除ListView选中的item

    "删除ListView选中的item"这个话题涉及到用户交互、数据管理和视图更新等核心知识点。在这个场景下,用户点击“清理”按钮后,ListView的每一项前面会显示一个复选框,用户可以通过选择复选框来标记要删除的item,...

    listview+checkbox选中删除,全选,item点击

    勾选这个全选CheckBox会将ListView中所有item的CheckBox设置为选中状态。对应的反向操作,即取消全选,也可以通过同样的方式处理。 6. **删除功能**:当用户选中一个或多个CheckBox时,可以提供一个删除按钮,点击...

    自定义listview 圆角listviewitem 处理 选中背景处理

    然而,为了提升用户体验和界面美观,我们经常需要对ListView进行定制,比如让ListView的每一项(ListItem)具有圆角效果,或者在选中时改变背景。本文将深入探讨如何实现自定义的圆角ListView项以及处理选中背景。 ...

    ListView嵌套ListView带多选,全选,反选,选中数量

    本项目"ListView嵌套ListView带多选,全选,反选,选中数量"着重解决了在嵌套ListView中实现多选、全选、反选以及动态显示选中数量的功能。下面将详细介绍这些关键知识点。 1. **嵌套ListView**: 在Android中,...

    ListView选中行高亮

    "ListView选中行高亮"这个话题,就是关于如何实现这个功能的技术要点。 首先,我们来理解一下ListView的基本工作原理。ListView通过Adapter(适配器)来绑定数据源,将数据转化为可显示的View,然后利用View的复用...

    Android ListView item 选中高亮显示

    本篇文章将详细探讨如何实现Android ListView item的选中高亮显示。 1. **自定义Adapter** 首先,你需要创建一个自定义的Adapter来填充ListView。Adapter是连接数据源和ListView的桥梁,通过它,我们可以将数据...

    Android中listView选中第一行,或任意一行,选中后能取消

    在这个特定的场景下,我们关注的是如何实现ListView的第一行或者任意一行的选中与取消选中功能。 首先,我们需要了解ListView的选中机制。在默认情况下,ListView并不支持单击选中,它通常用于展示数据并处理点击...

    ListView被选中 出现选中颜色标示

    - 为了实现选中项高亮显示,我们需要自定义一个ListView的Item布局,添加一个背景资源,该资源包含两种状态:默认状态和选中状态。通常,我们可以使用selector资源文件来定义这两种状态。 - Selector是一种...

    listview selector 选中时改变item 子控件 图片状态

    这就是标题中提到的"listview selector 选中时改变item 子控件 图片状态"。这个过程涉及到多个关键知识点,包括自定义selector、ListView的Item点击事件以及对子View的操作。 1. **自定义Selector** Android中的...

    Listview点击item高亮显示,

    在设置完新的选中项后,可能需要调用ListView的`invalidate()`或`notifyDataSetChanged()`方法来刷新界面,确保视觉效果的更新。 5. **优化性能**: 如果ListView包含大量的数据,为了避免性能问题,可以使用...

    listview里面可以拖动Item上下_ListView_listview拖动项_

    LVW(ListView Window)是ListView控件的简称,当用户按下鼠标并移动一个项目时,系统会显示一个拖动图标,表示当前选中的项目正在被拖动。同时,为了帮助用户准确地放置项目,通常还会显示一个定位图标,预览项目在...

    解决ListView嵌套CheckBox滑动时选中状态错乱

    在这个Adapter中,你需要维护一个数据列表,每个元素对应ListView的一个Item,同时包含CheckBox的选中状态。 2. **ViewHolder**:在getView()方法中使用ViewHolder模式,这样可以快速找到CheckBox并减少查找视图的...

    ListView像左滑动Item显示删除按钮

    本篇文章将详细讲解如何实现ListView中Item的左滑动显示删除按钮。 首先,我们需要一个自定义的ListView,这通常通过继承ListView类并重写其onTouchEvent()方法来实现。在这个方法中,我们可以监听用户的滑动操作。...

    listview保留选中效果2

    标题"listview保留选中效果2"表明我们要探讨的是如何在ListView滚动时仍能保持所选项目的高亮状态,即选中效果不因滚动而消失。描述中的"listview保留选中效果2"进一步强调了这是对之前讨论的延续或改进。 要实现...

Global site tag (gtag.js) - Google Analytics