@Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putString("result", result); outState.putChar("lastOp", lastOp); outState.putBoolean("isInEquals", isInEquals); outState.putSerializable("stack", stack.toArray(new String[stack.size()])); }
@Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); result = savedInstanceState.getString("result"); lastOp = savedInstanceState.getChar("lastOp"); isInEquals = savedInstanceState.getBoolean("isInEquals"); stack = new Stack<String>(); stack.addAll(Arrays.asList((String[]) savedInstanceState.getSerializable("stack"))); if (lastOp != '\0' && !isInEquals) tvOp.setText(String.valueOf(lastOp)); tvResult.setText(result); }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.calculator); // vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); for (int id : buttons) { Button b = (Button) findViewById(id); b.setOnClickListener(this); } tvResult = (TextView) findViewById(R.id.result); tvOp = (TextView) findViewById(R.id.op); Button b = (Button) findViewById(R.id.bOK); b.setOnClickListener( new OnClickListener() { @Override public void onClick(View arg0) { if (!isInEquals) { doEqualsChar(); } close(); } }); b = (Button) findViewById(R.id.bCancel); b.setOnClickListener( new OnClickListener() { @Override public void onClick(View arg0) { setResult(RESULT_CANCELED); finish(); } }); Intent intent = getIntent(); if (intent != null) { BigDecimal amount = (BigDecimal) intent.getSerializableExtra(KEY_AMOUNT); if (amount != null) { setDisplay(amount.toPlainString()); } } }