package com.pixplicity.easyprefs.sample; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.text.TextUtils; import android.view.View; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.pixplicity.easyprefs.library.Prefs; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; public class MainActivity extends AppCompatActivity implements View.OnClickListener { public static final String SAVED_TEXT = "saved_text"; public static final String SAVED_NUMBER = "saved_number"; private static final String FROM_INSTANCE_STATE = " : from instance state"; @BindView(R.id.tv_saved_text) TextView mSavedText; @BindView(R.id.tv_saved_number) TextView mSavedNumber; @BindView(R.id.et_text) EditText mTextET; @BindView(R.id.et_number) EditText mNumberET; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); // get the saved String from the preference by key, and give a default value // if Prefs does not contain the key. String s = Prefs.getString(SAVED_TEXT, getString(R.string.not_found)); double d = Prefs.getDouble(SAVED_NUMBER, -1.0); updateText(s); updateNumber(d, false); } private void updateText(String s) { String text = String.format(getString(R.string.saved_text), s); mSavedText.setText(text); } private void updateNumber(double d, boolean fromInstanceState) { String text = String.format(getString(R.string.saved_number), String.valueOf(d), fromInstanceState ? FROM_INSTANCE_STATE : ""); mSavedNumber.setText(text); } @OnClick({R.id.bt_save_text, R.id.bt_save_number, R.id.bt_force_close}) public void onClick(View v) { switch (v.getId()) { case R.id.bt_save_text: String text = mTextET.getText().toString(); if (!TextUtils.isEmpty(text)) { // one liner to save the String. Prefs.putString(SAVED_TEXT, text); updateText(text); } else { Toast.makeText(this, "trying to save a text with lenght 0", Toast.LENGTH_SHORT).show(); } break; case R.id.bt_save_number: double d = Double.parseDouble(mNumberET.getText().toString()); Prefs.putDouble(SAVED_NUMBER, d); updateNumber(d, false); break; case R.id.bt_force_close: finish(); break; default: throw new IllegalArgumentException( "Did you add a new button forget to listen to view ID in the onclick?"); } } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); final String text = mTextET.getText().toString(); if (!TextUtils.isEmpty(text)) { outState.putString(SAVED_TEXT, text); } double d = Double.parseDouble(mNumberET.getText().toString()); outState.putDouble(SAVED_NUMBER, d); } @Override protected void onRestoreInstanceState(@NonNull Bundle state) { super.onRestoreInstanceState(state); if (state.containsKey(SAVED_TEXT)) { final String text = state.getString(SAVED_TEXT) + FROM_INSTANCE_STATE; updateText(text); } if (state.containsKey(SAVED_NUMBER)) { double d = state.getDouble(SAVED_NUMBER); updateNumber(d, true); } } }