After much effort, I've realized that if you want to
reliably SHOW the keyboard, you must initialize the edittext view every time you want the keyboard displayed (reliably).
you can initialize the same edittext multiple times and even change attributes such as INPUT_TYPE from PHONE, TEXT etc.
Obviously, you can HIDE the keyboard with the phone.hidekeyboard
ph.HideKeyboard(activity)
You can SHOW the keyboard with the initialize function of the edit text
edtText.Initialize("edtText")
activity.AddView(edtText, 10, 10, 200, 50)
I hope this helps