package com.example.pocketknife; import android.content.Intent; import android.os.Bundle; import pocketknife.PocketKnifeBundleSerializer; import pocketknife.PocketKnifeIntentSerializer; public class StringSerializer implements PocketKnifeBundleSerializer<String>, PocketKnifeIntentSerializer<String> { @Override public void put(Bundle bundle, String target, String keyPrefix) { char[] charArray = (keyPrefix + target).toCharArray(); bundle.putCharArray(keyPrefix, charArray); } @Override public String get(Bundle bundle, String data, String keyPrefix) { char[] inArray = bundle.getCharArray(keyPrefix); char[] outArray = new char[inArray.length - keyPrefix.length()]; System.arraycopy(inArray, keyPrefix.length(), outArray, 0, outArray.length); return new String(outArray); } @Override public void put(Intent intent, String data, String keyPrefix) { char[] charArray = (keyPrefix + data).toCharArray(); intent.putExtra(keyPrefix, charArray); } @Override public String get(Intent intent, String data, String keyPrefix) { char[] inArray = intent.getCharArrayExtra(keyPrefix); char[] outArray = new char[inArray.length - keyPrefix.length()]; System.arraycopy(inArray, keyPrefix.length(), outArray, 0, outArray.length); return new String(outArray); } }