當前位置: 首頁>>代碼示例>>Java>>正文


Java CursorWindow.putBlob方法代碼示例

本文整理匯總了Java中android.database.CursorWindow.putBlob方法的典型用法代碼示例。如果您正苦於以下問題:Java CursorWindow.putBlob方法的具體用法?Java CursorWindow.putBlob怎麽用?Java CursorWindow.putBlob使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在android.database.CursorWindow的用法示例。


在下文中一共展示了CursorWindow.putBlob方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: putValue

import android.database.CursorWindow; //導入方法依賴的package包/類
/**
 * Put the value in given window. If the value type is other than Long,
 * String, byte[] or Double, the NULL will be filled.
 *
 * @return true if succeeded.
 */
private boolean putValue(CursorWindow window, Object value, int pos, int column) {
    if (value == null) {
        return window.putNull(pos, column);
    } else if (value instanceof Long) {
        return window.putLong((Long) value, pos, column);
    } else if (value instanceof String) {
        return window.putString((String) value, pos, column);
    } else if (value instanceof byte[] && ((byte[]) value).length > 0) {
        return window.putBlob((byte[]) value, pos, column);
    } else if (value instanceof Double) {
        return window.putDouble((Double) value, pos, column);
    } else {
        return window.putNull(pos, column);
    }
}
 
開發者ID:rkshuai,項目名稱:chromium-for-android-56-debug-video,代碼行數:22,代碼來源:SQLiteCursor.java

示例2: cursorFillWindow

import android.database.CursorWindow; //導入方法依賴的package包/類
/**
 * Fills the specified cursor window by iterating over the contents of the cursor.
 * The window is filled until the cursor is exhausted or the window runs out
 * of space.
 * 
 * The original position of the cursor is left unchanged by this operation.
 * 
 * @param cursor
 *            The cursor that contains the data to put in the window.
 * @param position
 *            The start position for filling the window.
 * @param window
 *            The window to fill.
 */
@TargetApi(11)
private static void cursorFillWindow(final Cursor cursor, int position,
		final CursorWindow window) {
	if (position < 0 || position >= cursor.getCount()) {
		return;
	}
	final int oldPos = cursor.getPosition();
	final int numColumns = cursor.getColumnCount();
	window.clear();
	window.setStartPosition(position);
	window.setNumColumns(numColumns);
	if (cursor.moveToPosition(position)) {
		do {
			if (!window.allocRow()) {
				break;
			}
			for (int i = 0; i < numColumns; i++) {
				// Cursor.getType() is only available from API 11 on, throw at least a
				// meaningful error message.
				if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
					throw new UnsupportedOperationException(
							"This method is only availble on devices running Honeycomb (API 11) or higher");
				}
				final int type = cursor.getType(i);
				final boolean success;
				switch (type) {
				case Cursor.FIELD_TYPE_NULL:
					success = window.putNull(position, i);
					break;

				case Cursor.FIELD_TYPE_INTEGER:
					success = window.putLong(cursor.getLong(i), position, i);
					break;

				case Cursor.FIELD_TYPE_FLOAT:
					success = window.putDouble(cursor.getDouble(i), position, i);
					break;

				case Cursor.FIELD_TYPE_BLOB:
					byte[] blob = cursor.getBlob(i);
					success = blob != null ? window.putBlob(blob, position, i) : window
							.putNull(position, i);
					break;

				default: // assume value is convertible to String
				case Cursor.FIELD_TYPE_STRING:
					String string = cursor.getString(i);
					success = string != null ? window.putString(string, position, i) : window
							.putNull(position, i);
					break;
				}
				if (!success) {
					window.freeLastRow();
					break;
				}
			}
			position++;
		} while (cursor.moveToNext());
	}
	cursor.moveToPosition(oldPos);
}
 
開發者ID:ProjectMAXS,項目名稱:maxs,代碼行數:76,代碼來源:CrossProcessCursorWrapper.java

示例3: fillWindow

import android.database.CursorWindow; //導入方法依賴的package包/類
@Override
public void fillWindow(int aRowPosition, CursorWindow aDataWindow) {
    if (aRowPosition<0 || aRowPosition>=getCount()) {
        return;
    }
    aDataWindow.acquireReference();
    try {
        int oldRowPos = mPos;
        mPos = aRowPosition - 1;
        aDataWindow.clear();
        aDataWindow.setStartPosition(aRowPosition);
        int theNumCols = getColumnCount();
        aDataWindow.setNumColumns(theNumCols);
        while (moveToNext() && aDataWindow.allocRow()) {
            for (int theColIdx=0; theColIdx<theNumCols; theColIdx++) {
                boolean bPutNull = false;
                boolean bPutFail = false;
            	switch (getColumnType(theColIdx)) {
            		case COLUMN_TYPE_STRING:
                    case COLUMN_TYPE_INTEGER:
                        String strField = getString(theColIdx);
                        if (strField != null)
                            bPutFail = (!aDataWindow.putString(strField,mPos,theColIdx));
                        else
                        	bPutNull = true;
                        break;
                    case COLUMN_TYPE_LONG:
                        Long longField = getLong(theColIdx);
                        if (longField != null)
                            bPutFail = (!aDataWindow.putLong(longField,mPos,theColIdx));
                        else
                        	bPutNull = true;
                        break;
            		case COLUMN_TYPE_FLOAT:
                        Double floatField = getDouble(theColIdx);
                        if (floatField != null)
                            bPutFail = (!aDataWindow.putDouble(floatField,mPos,theColIdx));
                        else
                        	bPutNull = true;
                        break;
            		case COLUMN_TYPE_BLOB:
                        byte[] blobField = getBlob(theColIdx);
                        if (blobField != null)
                            bPutFail = (!aDataWindow.putBlob(blobField,mPos,theColIdx));
                        else
                        	bPutNull = true;
                        break;
            		default:
            			bPutNull = true;
            	}
            	if (bPutNull) {
            		bPutFail = (!aDataWindow.putNull(mPos,theColIdx));
            	}
            	if (bPutFail) {
                    aDataWindow.freeLastRow();
                    break;
            	}
            }
        }

        mPos = oldRowPos;
    } catch (IllegalStateException e) {
        // simply ignore it
    } finally {
        aDataWindow.releaseReference();
    }
}
 
開發者ID:baracudda,項目名稱:androidBits,代碼行數:68,代碼來源:TypedMatrixCursor.java


注:本文中的android.database.CursorWindow.putBlob方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。