public class Settings implements Parcelable { private static final String TAG = "Settings"; private Command mCommand; private DataPattern mDataPattern; private int mPredefinedData; private byte[] mCustomizedData; private String mFilePath; private int mBlockSize; private int mBlockCount; private static Settings sInstance = new Settings(); private Settings() { //default values mCommand = Command.COMMAND_TPUT; mDataPattern = DataPattern.RANDOM; mBlockSize = 512; mBlockCount = 1; } public static Settings getInstance() { return sInstance; } private Settings(Parcel in) { readFromParcel(in); } public enum Command { COMMAND_NOP, /* no operation */ COMMAND_TPUT, COMMAND_ECHO, COMMAND_LOOPBACK } public enum DataPattern { File, RANDOM, PREDEFINED, CUSTOMIZED } public static final int[] sPredefined_Datas = new int[]{ 0XAA55, 0XFFFF, 0XBBEE, 0XBEAF }; public void setCommand(Command command) { mCommand = command; } public Command getCommand() { return mCommand; } public void setDataPattern(DataPattern dataPattern) { mDataPattern = dataPattern; } public DataPattern getDataPattern() { return mDataPattern; } public void setPredefinedData(int pedefinedData) { mPredefinedData = pedefinedData; } public int getPredefinedData() { return mPredefinedData; } public void setCustomizedData(byte[] customizedData) { mCustomizedData = customizedData; } public byte[] getCustomizedData() { return mCustomizedData; } public void setFilePath(String filePath) { mFilePath = filePath; } public String getFilePath() { return mFilePath; } public void setBlockSize(int blockSize) { mBlockSize = blockSize; } public int getBlockSize() { return mBlockSize; } public void setBlockCount(int blockCount) { mBlockCount = blockCount; } public int getBlockCount() { return mBlockCount; } @Override // Parcelable public int describeContents() { return 0; } @Override // Parcelable public void writeToParcel(Parcel out, int flags) { out.writeInt(mCommand.ordinal()); out.writeInt(mDataPattern.ordinal()); out.writeInt(mPredefinedData); out.writeByteArray(mCustomizedData); out.writeString(mFilePath); out.writeInt(mBlockSize); out.writeInt(mBlockCount); } public void readFromParcel(Parcel in) { mCommand = Command.values()[in.readInt()]; mDataPattern = DataPattern.values()[in.readInt()]; mPredefinedData = in.readInt(); in.readByteArray(mCustomizedData); mFilePath = in.readString(); mBlockSize = in.readInt(); mBlockCount = in.readInt(); } public static final Parcelable.Creator<Settings> CREATOR = new Parcelable.Creator<Settings>() { @Override public Settings createFromParcel(Parcel in) { return new Settings(in); } @Override public Settings[] newArray(int size) { return new Settings[size]; } };
把对象生成为Parcel类型,以及如何利用Parcel来传递Enum类型数据
最新推荐文章于 2021-05-26 02:06:27 发布