 <p>"onSaveInstanceState only seems to support primitives"</p> <p>onSaveInstanceState supports objects, as long as they are declared serializable.</p> <pre><code>// ON_SAVE_INSTANCE_STATE // save instance data (5) on soft kill such as user changing phone orientation protected void onSaveInstanceState(Bundle outState){ password= editTextPassword.getText().toString(); try { ConfuseTextStateBuilder b= ConfuseTextState.getBuilder(); b.setIsShowCharCount(isShowCharCount); b.setTimeExpire(timeExpire); b.setTimeoutType(timeoutType); b.setIsValidKey(isValidKey); b.setPassword(password); state= b.build(); // may throw } catch(InvalidParameterException e){ Log.d(TAG,"FailedToSaveState",e); // will be stripped out of runtime } outState.putSerializable("jalcomputing.confusetext.ConfuseTextState", state); // save non view state super.onSaveInstanceState(outState); // save view state //Log.d(TAG,"onSaveInstance"); } </code></pre>