@Override
  protected void onDetachedFromWindow() {
    super.onDetachedFromWindow();

    if (mContactAdapter != null && mContactAdapter.getCursor() != null) {
      mContactAdapter.getCursor().close();
      mContactAdapter = null;
    }
  }
  public void doFilter(Uri uri, String filterString) {
    if (!uri.equals(mUri)) {
      mUri = uri;

      if (mContactAdapter != null && mContactAdapter.getCursor() != null)
        mContactAdapter.getCursor().close();

      Cursor contactCursor = runQuery(filterString);

      if (mContactAdapter == null) {
        mContactAdapter = new ContactAdapter(mContext, contactCursor);
        mFilter = mContactAdapter.getFilter();
        mFilterList.setAdapter(mContactAdapter);
      } else {
        mContactAdapter.changeCursor(contactCursor);
      }

    } else {
      mFilter.filter(filterString);
    }
  }