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


Java Parcelable.Creator方法代碼示例

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


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

示例1: unmarshallParcelable

import android.os.Parcelable; //導入方法依賴的package包/類
/**
 * Unmarshalls a parcelable's byte array into the object
 *
 * @param bytes the byte array
 * @param clazz the class
 * @param <T>   the type
 * @return the object
 */
@SuppressWarnings("unchecked")
public static <T extends Parcelable> T unmarshallParcelable(byte[] bytes, Class<T> clazz) {
    if (bytes == null) {
        return null;
    }
    Parcel parcel = Parcel.obtain();
    parcel.unmarshall(bytes, 0, bytes.length);
    parcel.setDataPosition(0);

    try {
        Parcelable.Creator<? extends Parcelable> creator = (Parcelable.Creator<? extends Parcelable>) clazz.getField("CREATOR").get(null);
        return (T) creator.createFromParcel(parcel);
    } catch (Exception e) {
        throw new BadParcelableException(e);
    } finally {
        parcel.recycle();
    }
}
 
開發者ID:hortonworks,項目名稱:nifi-android-s2s,代碼行數:27,代碼來源:SerializationUtils.java

示例2: bytes2Parcelable

import android.os.Parcelable; //導入方法依賴的package包/類
private static <T> T bytes2Parcelable(final byte[] bytes, final Parcelable.Creator<T> creator) {
    if (bytes == null) return null;
    Parcel parcel = Parcel.obtain();
    parcel.unmarshall(bytes, 0, bytes.length);
    parcel.setDataPosition(0);
    T result = creator.createFromParcel(parcel);
    parcel.recycle();
    return result;
}
 
開發者ID:weiwenqiang,項目名稱:GitHub,代碼行數:10,代碼來源:CacheUtils.java

示例3: parseKV

import android.os.Parcelable; //導入方法依賴的package包/類
static void parseKV(Object entity, Class<?> type, ParseKVListener listener) {
    if (entity == null || type == null || type == RequestParams.class || type == Object.class) {
        return;
    } else {
        ClassLoader cl = type.getClassLoader();
        if (cl == null || cl == BOOT_CL) {
            return;
        }
    }

    Field[] fields = type.getDeclaredFields();
    if (fields != null && fields.length > 0) {
        for (Field field : fields) {
            if (!Modifier.isTransient(field.getModifiers())
                    && field.getType() != Parcelable.Creator.class) {
                field.setAccessible(true);
                try {
                    String name = field.getName();
                    Object value = field.get(entity);
                    if (value != null) {
                        listener.onParseKV(name, value);
                    }
                } catch (IllegalAccessException ex) {
                    LogUtil.e(ex.getMessage(), ex);
                }
            }
        }
    }

    parseKV(entity, type.getSuperclass(), listener);
}
 
開發者ID:weiwenqiang,項目名稱:GitHub,代碼行數:32,代碼來源:RequestParamsHelper.java

示例4: bytes2Parcelable

import android.os.Parcelable; //導入方法依賴的package包/類
private static <T> T bytes2Parcelable(byte[] bytes, Parcelable.Creator<T> creator) {
    if (bytes == null) return null;
    Parcel parcel = Parcel.obtain();
    parcel.unmarshall(bytes, 0, bytes.length);
    parcel.setDataPosition(0);
    T result = creator.createFromParcel(parcel);
    parcel.recycle();
    return result;
}
 
開發者ID:pan2yong22,項目名稱:AndroidUtilCode-master,代碼行數:10,代碼來源:CacheUtils.java

示例5: bytes2Parcelable

import android.os.Parcelable; //導入方法依賴的package包/類
private static <T> T bytes2Parcelable(final byte[] bytes, final Parcelable.Creator<T> creator) {
    if (bytes == null) {
        return null;
    }
    Parcel parcel = Parcel.obtain();
    parcel.unmarshall(bytes, 0, bytes.length);
    parcel.setDataPosition(0);
    T result = creator.createFromParcel(parcel);
    parcel.recycle();
    return result;
}
 
開發者ID:imliujun,項目名稱:LJFramework,代碼行數:12,代碼來源:CacheUtils.java

示例6: unmarshall

import android.os.Parcelable; //導入方法依賴的package包/類
public static <T> T unmarshall(byte[] bytes, Parcelable.Creator<T> creator) {
    Parcel parcel = unmarshall(bytes);
    T result = creator.createFromParcel(parcel);
    parcel.recycle();
    return result;
}
 
開發者ID:philipwhiuk,項目名稱:q-mail,代碼行數:7,代碼來源:ParcelableUtil.java

示例7: deserialize

import android.os.Parcelable; //導入方法依賴的package包/類
public static <T> T deserialize(byte[] bytes, Parcelable.Creator<T> creator) {
  Parcel parcel = deserialize(bytes);
  return creator.createFromParcel(parcel);
}
 
開發者ID:XecureIT,項目名稱:PeSanKita-android,代碼行數:5,代碼來源:ParcelUtil.java

示例8: getParcelable

import android.os.Parcelable; //導入方法依賴的package包/類
/**
 * 緩存中讀取Parcelable
 *
 * @param key 鍵
 * @param creator 建造器
 * @param defaultValue 默認值
 * @return 存在且沒過期返回對應值,否則返回默認值{@code defaultValue}
 */
public <T> T getParcelable(@NonNull final String key, @NonNull final Parcelable.Creator<T> creator, final T defaultValue) {
    byte[] bytes = getBytes(key);
    if (bytes == null) {
        return defaultValue;
    }
    return CacheHelper.bytes2Parcelable(bytes, creator);
}
 
開發者ID:imliujun,項目名稱:LJFramework,代碼行數:16,代碼來源:CacheUtils.java

示例9: getParcelable

import android.os.Parcelable; //導入方法依賴的package包/類
/**
 * 緩存中讀取Parcelable
 *
 * @param key     鍵
 * @param creator 建造器
 * @return 存在且沒過期返回對應值,否則返回{@code null}
 */
public <T> T getParcelable(@NonNull final String key, @NonNull final Parcelable.Creator<T> creator) {
    return getParcelable(key, creator, null);
}
 
開發者ID:weiwenqiang,項目名稱:GitHub,代碼行數:11,代碼來源:CacheUtils.java

示例10: getParcelable

import android.os.Parcelable; //導入方法依賴的package包/類
/**
 * 緩存中讀取Parcelable
 *
 * @param key     鍵
 * @param creator 建造器
 * @return 存在且沒過期返回對應值,否則返回{@code null}
 */
public <T> T getParcelable(@NonNull String key, @NonNull Parcelable.Creator<T> creator) {
    return getParcelable(key, creator, null);
}
 
開發者ID:pan2yong22,項目名稱:AndroidUtilCode-master,代碼行數:11,代碼來源:CacheUtils.java


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