类android.support.v4.content.Loader源码实例Demo

下面列出了怎么用android.support.v4.content.Loader的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: android-dev-challenge   文件: MainActivity.java
@Override
public void onLoadFinished(Loader<String> loader, String data) {

    /* When we finish loading, we want to hide the loading indicator from the user. */
    mLoadingIndicator.setVisibility(View.INVISIBLE);
    /*
     * If the results are null, we assume an error has occurred. There are much more robust
     * methods for checking errors, but we wanted to keep this particular example simple.
     */
    if (null == data) {
        showErrorMessage();
    } else {
        mSearchResultsTextView.setText(data);
        showJsonDataView();
    }
}
 
源代码2 项目: android-galaxyzoo   文件: ClassifyFragment.java
@Override
public void onLoadFinished(final Loader<Cursor> cursorLoader, final Cursor cursor) {
    if (cursorLoader.getId() != ClassifyFragment.LOADER_ID_NEXT_ID) {
        return;
    }

    mCursor = cursor;
    mGetNextInProgress = false;

    updateFromCursor();

    // Avoid this being called twice, which seems to be an Android bug,
    // and which could cause us to get a different item ID if our virtual "next" item changes to
    // another item:
    // See http://stackoverflow.com/questions/14719814/onloadfinished-called-twice
    // and https://code.google.com/p/android/issues/detail?id=63179
    getLoaderManager().destroyLoader(ClassifyFragment.LOADER_ID_NEXT_ID);
}
 
源代码3 项目: Woodmin   文件: OrderDetail.java
@Override
public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
    switch (cursorLoader.getId()) {
        case ORDER_LOADER:
            mOrderSelected = null;
            if (cursor.moveToFirst()) {
                do {
                    String json = cursor.getString(COLUMN_ORDER_COLUMN_JSON);
                    if(json!=null){
                        mOrderSelected = mGson.fromJson(json, Order.class);
                    }
                } while (cursor.moveToNext());
                fillView();
            }
            break;
        default:
            break;
    }
}
 
源代码4 项目: fdroidclient   文件: WhatsNewViewBinder.java
@Override
public void onLoadFinished(@NonNull Loader<Cursor> loader, Cursor cursor) {
    if (loader.getId() != LOADER_ID) {
        return;
    }

    whatsNewAdapter.setAppsCursor(cursor);

    if (whatsNewAdapter.getItemCount() == 0) {
        emptyState.setVisibility(View.VISIBLE);
        appList.setVisibility(View.GONE);
        explainEmptyStateToUser();
    } else {
        emptyState.setVisibility(View.GONE);
        appList.setVisibility(View.VISIBLE);
    }
}
 
源代码5 项目: Man-Man   文件: ManLocalArchiveFragment.java
@Override
public void onLoadFinished(Loader<List<File>> loader, List<File> manPageFiles) {
    if(mLocalPageList.getHeaderViewsCount() > 0) {
        mLocalPageList.removeHeaderView(mLocalPageList.getChildAt(0));
        mLocalPageList.removeHeaderView(mLocalPageList.getChildAt(1));
    }
    mLocalPageList.setAdapter(null); // for android < kitkat for header to work properly

    if(manPageFiles.isEmpty()) {
        mSearchLocalPage.setVisibility(View.GONE);
        View header1 = View.inflate(getActivity(), R.layout.add_folder_header, null);
        View header2 = View.inflate(getActivity(), R.layout.load_archive_header, null);
        mLocalPageList.addHeaderView(header1);
        mLocalPageList.addHeaderView(header2);
    } else {
        mSearchLocalPage.setVisibility(View.VISIBLE);
    }
    mLocalPageList.setAdapter(new LocalArchiveArrayAdapter(getActivity(), R.layout.chapter_command_list_item, R.id.command_name_label, manPageFiles));
}
 
源代码6 项目: CSipSimple   文件: AccountsEditListFragment.java
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
	 return new CursorLoader(getActivity(), SipProfile.ACCOUNT_URI, new String[] {
		SipProfile.FIELD_ID + " AS " + BaseColumns._ID,
		SipProfile.FIELD_ID,
		SipProfile.FIELD_DISPLAY_NAME,
		SipProfile.FIELD_WIZARD,
		SipProfile.FIELD_ACTIVE
	 }, null, null, null);
	 
}
 
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
	MyLog.entry();
	final String selection = CapturedPlayerFriendLeaderDescriptor.Fields.PLAYER_ID.getColName() + "=" + mModel.getId();

	final Loader<Cursor> loader = new CursorLoader(getActivity(), CapturedPlayerFriendLeaderDescriptor.UriHelper.uriForAllWithInfo(),
			null, selection, null, CapturedPlayerFriendLeaderDescriptor.TABLE_NAME + "." + CapturedPlayerFriendLeaderDescriptor.Fields.LAST_SEEN.getColName());

	MyLog.exit();
	return loader;
}
 
源代码8 项目: android-samples   文件: DetailActivity.java
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
    data.moveToFirst();

    TextView nameTv = (TextView) findViewById(R.id.name_tv);
    nameTv.setText(data.getString(data.getColumnIndex("name")));

    TextView idTv = (TextView) findViewById(R.id.id_tv);
    idTv.setText(data.getLong(data.getColumnIndex("_id")) + "");
}
 
源代码9 项目: qiniu-lab-android   文件: FileListFragment.java
@Override
public void onLoadFinished(Loader<List<File>> loader, List<File> data) {
    mAdapter.setListItems(data);

    if (isResumed())
        setListShown(true);
    else
        setListShownNoAnimation(true);
}
 
源代码10 项目: iBeebo   文件: AbstractUserListFragment.java
@Override
public void onLoadFinished(Loader<AsyncTaskLoaderResult<UserListBean>> loader,
                           AsyncTaskLoaderResult<UserListBean> result) {

    UserListBean data = result != null ? result.data : null;
    WeiboException exception = result != null ? result.exception : null;

    switch (loader.getId()) {
        case NEW_USER_LOADER_ID:
            mSwipeRefreshLayout.setRefreshing(false);
            refreshLayout(getList());
            if (Utility.isAllNotNull(exception)) {
                Toast.makeText(getActivity(), exception.getError(), Toast.LENGTH_SHORT).show();
            } else {
                if (data != null && data.getUsers().size() > 0) {
                    clearAndReplaceValue(data);
                    getAdapter().notifyDataSetChanged();
                    getListView().setSelectionAfterHeaderView();
                    newUserLoaderSuccessCallback();
                }
            }
            break;
        case OLD_USER_LOADER_ID:
            refreshLayout(getList());

            if (exception != null) {
                showErrorFooterView();
            } else if (data != null) {
                canLoadOldData = data.getUsers().size() > 1;
                oldUserLoaderSuccessCallback(data);
                getAdapter().notifyDataSetChanged();
                dismissFooterView();
            } else {
                canLoadOldData = false;
                dismissFooterView();
            }
            break;
    }
    getLoaderManager().destroyLoader(loader.getId());
}
 
源代码11 项目: iBeebo   文件: MentionsCommentTimeLineFragment.java
protected Loader<AsyncTaskLoaderResult<CommentListBean>> onCreateOldMsgLoader(int id, Bundle args) {
    String accountId = accountBean.getUid();
    String maxId = null;
    if (getDataList().getItemList().size() > 0) {
        maxId = getDataList().getItemList().get(getDataList().getItemList().size() - 1).getId();
    }
    return new MentionsCommentMsgLoader(getActivity(), accountId, token, null, maxId);
}
 
源代码12 项目: android-dev-challenge   文件: MainActivity.java
/**
 * Called by the {@link android.support.v4.app.LoaderManagerImpl} when a new Loader needs to be
 * created. This Activity only uses one loader, so we don't necessarily NEED to check the
 * loaderId, but this is certainly best practice.
 *
 * @param loaderId The loader ID for which we need to create a loader
 * @param bundle   Any arguments supplied by the caller
 * @return A new Loader instance that is ready to start loading.
 */
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle bundle) {


    switch (loaderId) {

        case ID_FORECAST_LOADER:
            /* URI for all rows of weather data in our weather table */
            Uri forecastQueryUri = WeatherContract.WeatherEntry.CONTENT_URI;
            /* Sort order: Ascending by date */
            String sortOrder = WeatherContract.WeatherEntry.COLUMN_DATE + " ASC";
            /*
             * A SELECTION in SQL declares which rows you'd like to return. In our case, we
             * want all weather data from today onwards that is stored in our weather table.
             * We created a handy method to do that in our WeatherEntry class.
             */
            String selection = WeatherContract.WeatherEntry.getSqlSelectForTodayOnwards();

            return new CursorLoader(this,
                    forecastQueryUri,
                    MAIN_FORECAST_PROJECTION,
                    selection,
                    null,
                    sortOrder);

        default:
            throw new RuntimeException("Loader Not Implemented: " + loaderId);
    }
}
 
源代码13 项目: V.FlyoutTest   文件: LoaderManager.java
private LoaderInfo createLoader(int id, Bundle args,
        LoaderManager.LoaderCallbacks<Object> callback) {
    LoaderInfo info = new LoaderInfo(id, args,  (LoaderManager.LoaderCallbacks<Object>)callback);
    Loader<Object> loader = callback.onCreateLoader(id, args);
    info.mLoader = (Loader<Object>)loader;
    return info;
}
 
源代码14 项目: android-dev-challenge   文件: MainActivity.java
/**
 * Called by the {@link android.support.v4.app.LoaderManagerImpl} when a new Loader needs to be
 * created. This Activity only uses one loader, so we don't necessarily NEED to check the
 * loaderId, but this is certainly best practice.
 *
 * @param loaderId The loader ID for which we need to create a loader
 * @param bundle   Any arguments supplied by the caller
 * @return A new Loader instance that is ready to start loading.
 */
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle bundle) {


    switch (loaderId) {

        case ID_FORECAST_LOADER:
            /* URI for all rows of weather data in our weather table */
            Uri forecastQueryUri = WeatherContract.WeatherEntry.CONTENT_URI;
            /* Sort order: Ascending by date */
            String sortOrder = WeatherContract.WeatherEntry.COLUMN_DATE + " ASC";
            /*
             * A SELECTION in SQL declares which rows you'd like to return. In our case, we
             * want all weather data from today onwards that is stored in our weather table.
             * We created a handy method to do that in our WeatherEntry class.
             */
            String selection = WeatherContract.WeatherEntry.getSqlSelectForTodayOnwards();

            return new CursorLoader(this,
                    forecastQueryUri,
                    MAIN_FORECAST_PROJECTION,
                    selection,
                    null,
                    sortOrder);

        default:
            throw new RuntimeException("Loader Not Implemented: " + loaderId);
    }
}
 
源代码15 项目: Matisse   文件: AlbumCollection.java
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
    Context context = mContext.get();
    if (context == null) {
        return;
    }

    mCallbacks.onAlbumLoad(data);
}
 
源代码16 项目: iBeebo   文件: CommentsToMeTimeLineFragment.java
protected Loader<AsyncTaskLoaderResult<CommentListBean>> onCreateNewMsgLoader(int id, Bundle args) {
    String accountId = accountBean.getUid();
    String sinceId = null;
    if (getDataList().getItemList().size() > 0) {
        sinceId = getDataList().getItemList().get(0).getId();
    }
    return new CommentsToMeMsgLoader(getActivity(), accountId, token, sinceId, null);
}
 
源代码17 项目: iBeebo   文件: MentionsWeiboTimeLineFragment.java
@Override
        public void onLoadFinished(Loader<MentionTimeLineData> loader, MentionTimeLineData result) {
            getListView().setVisibility(View.VISIBLE);

            if (result != null) {
                getDataList().replaceData(result.msgList);
                timeLinePosition = result.position;
            }

            getAdapter().notifyDataSetChanged();
            setListViewPositionFromPositionsCache();

            /**
             * when this account first open app,if he don't have any data in database,fetch data
             * from server automally
             */

            if (bean.getSize() == 0) {
//                mPullToRefreshListView.setRefreshing();
                getSwipeRefreshLayout().setRefreshing(true);
                loadNewMsg();
            } else {
                new RefreshReCmtCountTask(token).executeOnExecutor(MyAsyncTask.THREAD_POOL_EXECUTOR);
            }

            getLoaderManager().destroyLoader(loader.getId());

            checkUnreadInfo();

        }
 
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    Log.d(TAG, "onCreateLoader");
    String[] customProjection = new String[]{
            "COUNT ("
                    + RecordDbContract.RecordItem.COLUMN_NUMBER
                    + ") AS " + RecordDbContract.Extended.COLUMN_TOTAL_CALLS,
            "SUM (CASE WHEN "
                    + RecordDbContract.RecordItem.COLUMN_IS_INCOMING
                    + " =  1 THEN 1 ELSE 0 END) AS "
                    + RecordDbContract.Extended.COLUMN_TOTAL_INCOMING_CALLS,
            "SUM (CASE WHEN "
                    + RecordDbContract.RecordItem.COLUMN_IS_INCOMING
                    + " =  0 THEN 1 ELSE 0 END) AS "
                    + RecordDbContract.Extended.COLUMN_TOTAL_OUTGOING_CALLS};

    String[] projection = ArrayUtils.addAll(RecordDbContract.RecordItem.ALL_COLUMNS, customProjection);
    String selection = null;
    String[] selectionArgs = null;
    String sort = "COUNT ( " + RecordDbContract.RecordItem.COLUMN_NUMBER + ") DESC";

    switch (id) {
        case 0:
            // TODO: 17.05.2017 offset and limit control
            Uri uri = RecordDbContract.CONTENT_URL
                    .buildUpon()
                    .appendQueryParameter(RecordsContentProvider.QUERY_PARAMETER_LIMIT,
                            String.valueOf(15))
                    .appendQueryParameter(RecordsContentProvider.QUERY_PARAMETER_OFFSET,
                            String.valueOf(0))
                    .appendQueryParameter(RecordsContentProvider.QUERY_PARAMETER_GROUP_BY,
                            RecordDbContract.RecordItem.COLUMN_NUMBER)
                    //.encodedQuery("mLimit=" + mLimit + "," + mOffset)
                    .build();
            return new CursorLoader(this, uri, projection, selection, selectionArgs, sort);

        default:
            throw new IllegalArgumentException("no loader id handled!");
    }
}
 
源代码19 项目: Theogony   文件: FavoritesActivity.java
@Override
public void onLoadFinished(Loader<List<Champion>> loader, final List<Champion> data) {
    if (data.size() == 0) {
        mRecyclerView.setVisibility(View.INVISIBLE);
        mEmptyView.setVisibility(View.VISIBLE);
    } else {
        mRecyclerView.setVisibility(View.VISIBLE);
        mEmptyView.setVisibility(View.INVISIBLE);
    }
    mAdapter.setData(data);
    mAdapter.notifyDataSetChanged();
}
 
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    if (!mProgressBar.isShown()) {
        mProgressBar.setVisibility(View.VISIBLE);
    }
    String[] projection = args.getStringArray(RecordsActivity.args.projection.name());
    String selection = args.getString(RecordsActivity.args.selection.name());
    String[] selectionArgs = args.getStringArray(RecordsActivity.args.selectionArguments.name());
    String sort = mPreferenceHelper.getSortSelection()
            + mPreferenceHelper.getSortArrange();
    int limit = args.getInt(RecordsActivity.args.limit.name());
    int offset = args.getInt(RecordsActivity.args.offset.name());

    switch (id) {
        case 0:
            Uri uri = RecordDbContract.CONTENT_URL
                    .buildUpon()
                    .appendQueryParameter(RecordsContentProvider.QUERY_PARAMETER_LIMIT,
                            String.valueOf(limit))
                    .appendQueryParameter(RecordsContentProvider.QUERY_PARAMETER_OFFSET,
                            String.valueOf(offset))
                    .build();
            return new CursorLoader(this, uri, projection, selection, selectionArgs, sort);

        default:
            throw new IllegalArgumentException("no loader id handled!");
    }
}
 
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
	// Create an adapter to point at this cursor
	ItemHuntingRewardListCursorAdapter adapter = new ItemHuntingRewardListCursorAdapter(
			getActivity(), (HuntingRewardCursor) cursor);
	setListAdapter(adapter);

}
 
源代码22 项目: android-discourse   文件: TopicsListFragment.java
private boolean isStreamLoading() {
    if (isAdded()) {
        final Loader loader = getLoaderManager().getLoader(TOPICS_LOADER_ID);
        if (loader != null) {
            return ((LatestTopicsLoader) loader).isLoading();
        }
    }
    return true;
}
 
源代码23 项目: FilePicker   文件: EssAlbumCollection.java
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
    Context context = mContext.get();
    if (context == null) {
        return;
    }

    mCallbacks.onAlbumMediaLoad(data);
}
 
源代码24 项目: mobile-manager-tool   文件: QuickQueueFragment.java
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
    // Check for database errors
    if (data == null) {
        return;
    }

    mMediaIdIndex = data.getColumnIndexOrThrow(BaseColumns._ID);
    mTitleIndex = data.getColumnIndexOrThrow(MediaColumns.TITLE);
    mArtistIndex = data.getColumnIndexOrThrow(AudioColumns.ARTIST);
    mAlbumIndex = data.getColumnIndexOrThrow(AudioColumns.ALBUM);
    mAlbumIdIndex = data.getColumnIndexOrThrow(AudioColumns.ALBUM_ID);
    mQuickQueueAdapter.changeCursor(data);
    mCursor = data;
}
 
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
	// Create an adapter to point at this cursor

	QuestRewardListCursorAdapter adapter = new QuestRewardListCursorAdapter(
			getActivity(), (QuestRewardCursor) cursor);
	setListAdapter(adapter);

}
 
源代码26 项目: fdroidclient   文件: CategoriesViewBinder.java
@Override
public void onLoaderReset(Loader<Cursor> loader) {
    if (loader.getId() != LOADER_ID) {
        return;
    }

    categoryAdapter.setCategories(Collections.<String>emptyList());
}
 
源代码27 项目: PowerFileExplorer   文件: ExplorerActivity.java
@Override
public void addConnection(OpenMode service) {

    try {
        if (cloudHandler.findEntry(service) != null) {
            // cloud entry already exists
            Toast.makeText(this, getResources().getString(R.string.connection_exists),
			   Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(ExplorerActivity.this, getResources().getString(R.string.please_wait), Toast.LENGTH_LONG).show();
            Bundle args = new Bundle();
            args.putInt(ARGS_KEY_LOADER, service.ordinal());

            // check if we already had done some work on the loader
            Loader loader = getSupportLoaderManager().getLoader(REQUEST_CODE_CLOUD_LIST_KEY);
            if (loader != null && loader.isStarted()) {
                // making sure that loader is not started
                getSupportLoaderManager().destroyLoader(REQUEST_CODE_CLOUD_LIST_KEY);
            }
            getSupportLoaderManager().initLoader(REQUEST_CODE_CLOUD_LIST_KEY, args, this);
        }
    } catch (CloudPluginException e) {
        e.printStackTrace();
        Toast.makeText(this, getResources().getString(R.string.cloud_error_plugin),
		   Toast.LENGTH_LONG).show();
    }
}
 
源代码28 项目: android-discourse   文件: TopicsListFragment.java
private boolean streamHasMoreResults() {
    if (isAdded()) {
        final Loader loader = getLoaderManager().getLoader(TOPICS_LOADER_ID);
        if (loader != null) {
            return ((LatestTopicsLoader) loader).hasMoreResults();
        }
    }
    return false;
}
 
源代码29 项目: attendee-checkin   文件: EventSelectionFragment.java
@Override
public void onLoaderReset(Loader<Cursor> loader) {
    switch (loader.getId()) {
        case LOADER_EVENTS: {
            mAdapter.swapCursor(null);
            break;
        }
    }
}
 
源代码30 项目: Contacts   文件: FragmentContainer2.java
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args)
{
	// Easy way to limit the query to contacts with phone numbers.
	String selection = SELECTION + getAdditionalFilters();
	
	return new CursorLoader(getActivity(),  // Context
			getUri(),       // URI representing the table/resource to be queried
			null,      // projection - the list of columns to return. Null means "all"
			selection, // selection - Which rows to return (condition rows must match)
			getSelectionArgs(),      // selection args - can be provided separately and subbed into selection.
			SORT_BY);   // string specifying sort order
}