문제

I have a ListView which by using CursorAdapter I m inflating its rows . And I am using SwapCursor in order to refresh the ListView.

I am also able to get the listView standStill once I add the Content in the DB and Swap the Cursor after that.

Now the Problem is on swapCursor / notifyDatasetChanged / changeCursor it is refreshing the listView.But not maitaining the same item which was present Earlier into the listView.

It is changing the content of item by its previous one once I refresh the listView.

This is How I got ListView standStill after swapCursor() :

if (result_cursor != null) {

            CursorDemo cursorDemo = new CursorDemo(ORMLiteActivity.this , result_cursor);

            cursorDemo.swapCursor(result_cursor);

            View v = listViewDb.getChildAt(0);

            int top = (v == null) ? 0 : v.getTop();

            int firstPosition = listViewDb.getFirstVisiblePosition();

            listViewDb.setAdapter(cursorDemo);

            listViewDb.setSelectionFromTop(firstPosition , top);
            }

So Now I would get the same ListView item before or After swapCursor

Before Insert

After Second

Any Answer is Truely Appreciated...

도움이 되었습니까?

해결책

I figure using this:

    if (result_cursor != null) {

                CursorDemo cursorDemo = new CursorDemo(ORMLiteActivity.this , result_cursor);

                cursorDemo.swapCursor(result_cursor);

                View v = listViewDb.getChildAt(0);

                int top = (v == null) ? 0 : v.getTop();

                int firstPosition = listViewDb.getFirstVisiblePosition();

                int after_insert_position = (firstPosition == 0) ? 0 : firstPosition+1;

                listViewDb.setAdapter(cursorDemo);

                listViewDb.setSelectionFromTop( after_insert_position , top);
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top