I have an activity that is showing an EditText and two bottoms.
When I tap on the EditText the Android Virtual Keyboard shows up so that I can type in my text. Now, before tapping in any bottom I would like to hide the keyboard. I would like to do it by tapping on the screen.
I have seen posts here in stackoverflow with some similar question but that does not look like working. I have tried to set a listener:
   // Create an anonymous implementation of OnFocusChangeListener
   private OnFocusChangeListener mFocusListener = new OnFocusChangeListener() {
       public void onFocusChange(View v, boolean b) {
          // do something when the focus changes
        hideSoftKeyboard(v);
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setupUI(findViewById(R.id.parent));
        EditText editText = (EditText) findViewById (R.id.edit_message);
        editText.setOnFocusChangeListener(mFocusListener);
        setContentView(R.layout.activity_main);
    }
I have also tried to create a parent activity that recursively associate an onTouch event to every view that is not a text View but it does register only the text view (I took this piece of code from another stackoverflow post)
    public void setupUI(View view) {
    //Set up touch listener for non-text box views to hide keyboard.
    if(!(view instanceof EditText)) {
        view.setOnTouchListener(new OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                hideSoftKeyboard(v);
                return false;
            }
        });
    }
    //If a layout container, iterate over children and seed recursion.
    if (view instanceof ViewGroup) {
        for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
            View innerView = ((ViewGroup) view).getChildAt(i);
            setupUI(innerView);
        }
    }
}
Any straitgh forward solution for this? I can not believe that there is not a more simple way to do this. I am using Gingerbread API (API Level 10)
Thanks
 
    