0

Android でチャット リストビューを実装しています。アクティビティでスクロール リスナーを使用してチャット データを更新しています。

以下のコードを使用して、スクロールのアイドル状態を確認し、リストビューを更新しています。

public void onScrollStateChanged(AbsListView view, int scrollState) {
    scrolled=true;
    if (scrollState == SCROLL_STATE_IDLE) {
        if (listview.getLastVisiblePosition() >= listview.getCount()-1) {
            if(task != null && (task.getStatus() == AsyncTask.Status.FINISHED)){
                task = new MessageTask();
                task.execute(new String[]{URL});
                adapter.notifyDataSetChanged();         
            }
        }
    }
}

私の問題は、スクロールしたときにのみリストビューが更新されることです。それ以外の場合、リストビューは更新されません。

そのため、タイマーを使用して asynctask を定期的に呼び出すようにスケジュールしています。

Androidでリストビューをスクロールするときにタイマーを停止してタイマーを再開する方法。またはタイマーアプローチは正しいですか?他に方法があればアドバイスお願いします。

4

1 に答える 1

2

これらを ListView に追加して、目的を達成します。

android:stackFromBottom="true"
android:transcriptMode="normal" 
于 2013-09-29T09:37:08.557 に答える