我有一个ListActivity类,它使用CursorAdapter填充列表。 我需要做的是让视图向下滚动到列表中的特定元素,基于列表中元素的值。
列表是具有“截止日期”的项目列表,如果截止日期已经过去,我希望视图滚过它。因此,在启动时,用户将在顶部看到最近到期日期的项目(视图将滚动到此项目)。如果他们想查看过期日期,他们可以向上滚动。
我希望我能正确解释这个问题,我只是想在我们的ListActivity中隐藏项目,如果他们的截止日期已经过去了,那么根据活动的推出时间当然。
答案 0 :(得分:2)
这有效:
ListView list = getListView();
int count = list.getCount();
long now = new GregorianCalendar().getTimeInMillis();
int scrollTo = 0;
for ( int i = 0; i < count; i++ ) {
Cursor cursor = (Cursor)list.getItemAtPosition( i );
long endtime = cursor.getLong( "endtime" );
if ( endtime > now ) {
//this is the one we want to scroll to
scrollTo = i;
break;
}
}
temp.setSelection( scrollTo );
答案 1 :(得分:0)
查看项目以找到断点,然后使用smoothScrollToPosition
函数设置该位置的动画
答案 2 :(得分:0)
这只是一个想法,但如果您有一个项目列表,并且您可以获取截止日期,并且您还有当前日期的信息,为什么不调整列表的重力以使其具有当前注释在顶部....
OR
如果列表视图中有一个注释列表,在活动的onresume和oncreate方法中,重新调整列表中的注释,以便传递的注释放到列表的底部,就像当前的那样笔记总是在最重要的,你不必担心试图弄乱引力