本文整理汇总了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();
}
}
示例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;
}
示例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);
}
示例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;
}
示例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;
}
示例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;
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}