package jp.mydns.sys1yagi.android.complexpreferencessample; import java.io.ByteArrayOutputStream; import java.io.ObjectOutputStream; import jp.mydns.sys1yagi.android.complexpreferencessample.model.User; import jp.mydns.sys1yagi.android.complexpreferencessample.model.User.AccessToken; import jp.mydns.sys1yagi.android.complexpreferencessample.model.User2; import br.com.kots.mob.complex.preferences.ComplexPreferences; import com.google.gson.Gson; import android.app.Activity; import android.os.Bundle; import android.util.Base64; import android.util.Log; import android.view.Menu; public class ComplexPreferencesSampleActivity extends Activity { private final static String TAG = ComplexPreferencesSampleActivity.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_complex_preferences_sample); //ComplexPreferencesと初期化。内部でSharedPreferenceを作っている ComplexPreferences complexPrefenreces = ComplexPreferences.getComplexPreferences( getBaseContext(), "preference", MODE_PRIVATE ); AccessToken token = new AccessToken(); token.setAccessToken("access_token"); token.setAccessTokenSecret("AeogKE9230KEcs0SaAj"); User user = new User(); user.setId("sys1yagi"); user.setName("八木"); user.setProfile("つらぽよ"); user.setToken(token); //オブジェクトをセットして保存 complexPrefenreces.putObject("user", user); complexPrefenreces.commit(); //読み込み User loadedUser = complexPrefenreces.getObject("user", User.class); Log.d(TAG, loadedUser.toString()); //パーシャルなクラスで読み込み User2 user2 = complexPrefenreces.getObject("user", User2.class); Log.d(TAG, "user2:"+user2.toString()); //JSON文字列で読み込み String value = complexPrefenreces.getPreferences().getString("user", "empty"); Log.d(TAG, "value:" + value); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.complex_preferences_sample, menu); return true; } public String toBase64(Object object) { // try-with-resourcesつかいてーー!! ByteArrayOutputStream baos = null; ObjectOutputStream oos = null; try { baos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(baos); oos.writeObject(object); byte[] bytes = baos.toByteArray(); byte[] base64 = Base64.encode(bytes, Base64.NO_WRAP); return new String(base64); } catch (Exception e) { e.printStackTrace(); } finally { try { if (oos != null) { oos.close(); } if (baos != null) { baos.close(); } } catch (Exception e) { } } return null; } }