Skip to content

Instantly share code, notes, and snippets.

@methodin
Created May 30, 2013 15:36
Show Gist options
  • Save methodin/5678832 to your computer and use it in GitHub Desktop.
Save methodin/5678832 to your computer and use it in GitHub Desktop.

Revisions

  1. methodin created this gist May 30, 2013.
    38 changes: 38 additions & 0 deletions ListLoader.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,38 @@
    /*
    * Example:
    * new ListLoader(listView).execute(new Select().from(TestEntity.class));
    */

    import java.lang.ref.WeakReference;
    import java.util.List;

    import android.os.AsyncTask;
    import android.widget.ListView;

    import com.activeandroid.query.From;

    public class ListLoader extends AsyncTask<From, Void, List<TestEntity>> {
    private final WeakReference<ListView> referenceView;

    public ListLoader(ListView listView) {
    referenceView = new WeakReference<ListView>(listView);
    }

    @Override
    protected List<TestEntity> doInBackground(From... params) {
    return params[0].execute();
    }

    /**
    * The system calls this to perform work in the UI thread and delivers the
    * result from doInBackground()
    */
    @Override
    protected void onPostExecute(List<TestEntity> items) {
    final ListView listView = referenceView.get();
    if(listView != null) {
    TestListAdapter adapter = (TestListAdapter) listView.getAdapter();
    adapter.setItems(items);
    }
    }
    }