0

我正在使用以下代码重新加载我的ListView. 我应该如何修改它以ListView保持的位置?

protected void refreshListView() {
    datasource = new DataSource(this);
    try {
        datasource.ScanVirtualSystems();
    } catch (Exception e) {
        Log.w("Exception", "exception in ScanVirtualSystems() method");
    }
    MatrixCursor cursor;
    cursor = datasource.getnameList();
    startManagingCursor(cursor);
    String[] from = { "name", "desc", "status", "path", "folder",
            BaseColumns._ID };
    int[] to = { R.id.name, R.id.desc, R.id.status, R.id.path };
    final CustomSCAdapter adapter = new CustomSCAdapter(
            Mactivity.this, R.layout.row, cursor, from, to);
    adapter.notifyDataSetChanged();
    setListAdapter(adapter);
}
4

1 回答 1

1
protected void refreshListView() {

    ListView lv = getListView();
    int position = lv.getFirstVisiblePosition();

    datasource = new DataSource(this);
    try {
        datasource.ScanVirtualSystems();
    } catch (Exception e) {
        Log.w("Exception", "exception in ScanVirtualSystems() method");
    }
    MatrixCursor cursor;
    cursor = datasource.getnameList();
    startManagingCursor(cursor);
    String[] from = { "name", "desc", "status", "path", "folder",
            BaseColumns._ID };
    int[] to = { R.id.name, R.id.desc, R.id.status, R.id.path };
    final CustomSCAdapter adapter = new CustomSCAdapter(
            Mactivity.this, R.layout.row, cursor, from, to);
    adapter.notifyDataSetChanged();
    setListAdapter(adapter);

    lv.smoothScrollToPosition(position);
}
于 2012-04-23T00:16:28.463 回答