1

CursorAdapter を使用してリストを作成する ListActivity クラスがあります。私がする必要があるのは、リスト内の要素の値に基づいて、リスト内の特定の要素までビューをスクロールダウンさせることです。

リストは「期日」のあるアイテムのリストであり、期日がすでに過ぎている場合は、ビューをスクロールしてそれを過ぎてください。したがって、起動すると、ユーザーには最も近い期限のアイテムが一番上に表示されます (ビューはこのアイテムまでスクロールされます)。期日を過ぎた日付を確認したい場合は、上にスクロールできます。

これを適切に説明していることを願っています。もちろん、アクティビティが開始された時間に基づいて、期日がすでに過ぎている場合は、ListActivity でアイテムを非表示にしたいだけです。

4

3 に答える 3

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 );
于 2011-03-17T22:42:14.043 に答える
0

アイテムを調べてブレークポイントを見つけ、smoothScrollToPosition関数を使用してその位置にアニメーション化します

Android開発者サイト:AbsListView#smoothScrollToPosition

于 2011-03-17T16:27:40.330 に答える
0

これは単なるアイデアですが、アイテムのリストがあり、期日を取得でき、現在の日付に関する情報もある場合は、現在のメモが一番上になるようにリストの重力を調整しないでください。 ....

また

リストビューにメモのリストがある場合、アクティビティの onresume および oncreate メソッドで、リスト内のメモを再シャッフルして、渡されたものがリストの一番下に配置されるようにします。これにより、現在のメモが常に上にいて、重力を台無しにしようとすることを心配する必要はありません

于 2011-03-17T21:15:13.340 に答える