title: Android: Evaluate EditText after the user finishes editing
body: <p><strong>What I want</strong>
  I have an EditText, where the user can enter a value, such as 10.40. Once the user is done editing I am formatting his input to a currency, for instance the above mentioned value would get formatted to $10.40 (in the case of Locale.US). And I display that result in the same EditText that the user previously edited.</p>
  
  <p><strong>Problem</strong>
  Because I am going to format (i.e. modify) his input, I need to know when he's done (so my formatting does not interfer with his ongoing input). </p>
  
  <p><strong>What I tried</strong>
  TextWatcher is not an option, since it fires on every single edit, hence when the user enters one, zero, four, dot and zero (=10.40). I am currently using an OnFocusChangeListener which works as desired, BUT the problem is: I have buttons in my application and if the user clicks on a button after editing the EditText the EditText won't lose Focus, hence my formatting code never get's called ...</p>
  
  <p>After this I tried messing around with the button's focus, setting it to FocusableInTouchMode - which results in the button having to be clicked twice in order to fire (which is a no go), since it gains focus the first time and get's activated the second time. After so much hacking around I was wondering if anyone got an idea as how to solve this dilemma.</p>
  
  <p><strong>Some Code</strong></p>
  
  <p>I add the following OnFocusChangeListener to my EditText whose function I described above. The EditText is encapsulated within a CurrencyTextbox (which is not really relevant):</p>
  
  <pre><code>@Override
  protected OnFocusChangeListener getOnFocusChangeListener() {
      return new OnFocusChangeListener() {
          @Override
          public void onFocusChange(View v, boolean hasFocus) {
              if (hasFocus) {
                  //Member variable in the class which contains an EditText
                  CurrencyTextbox.this.hadFocus = true;
              } else {
                  // Thes EditText has lost focus
                  Log.v(TAG, "Lost focus.");
                  if (CurrencyTextbox.this.hadFocus) {
                      // We previously had focus, now we lost it, format the user input!
                      // Get current value of the Textbox
                      String value = CurrencyTextbox.this.textbox.getText().toString();
                      // Formatting the user input
                      value = String.format(//Doing some formatting);
                      // Reset the had focus
                      CurrencyTextbox.this.hadFocus = false;
                  }
              }
          }
      };
  }
  </code></pre>
  
  <p>The problem however is, the above OnFocusChangelistener only get's called if my EditText loses focus, but it does NOT lose focus when I click on a button in my Activity, and as stated above, it is not feasible to set the Button's isFocusableInTouchMode to true, as it then needs to be clicked twice every time to fire.</p>