isActive() asks about whether a local view is an active target, nothing about whether the IME is displayed:
http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html#isActive() I can't say off-hand why setting a click listener would prevent the IME from being shown, but as a general rule you should not be doing anything from a click on an EditText, since this is dedicated to displaying the IME. On Wed, Dec 2, 2009 at 7:13 PM, Mark Wyszomierski <[email protected]> wrote: > Ah phew ok at least I'm not the only one seeing that behavior! In my > UI, when the user clicks on the EditText, I want to expand some other > UI elements - something like a list pops up with suggested keywords - > it works, but it has the side effect of blocking the IME keypad from > coming up. > > However, if I try running a test to see if a keypad is active for the > EditText that was clicked, like: > > InputMethodManager imm = (InputMethodManager)getContext > ().getSystemService(Context.INPUT_METHOD_SERVICE); > if (imm.isActive()) { > Log.d(TAG, "yes the keypad is active."); > } > > it reports true. So maybe it does somehow display but gets hidden or > something? I don't know. > > Thanks > > > On Dec 2, 9:43 pm, Steve Oliver <[email protected]> wrote: > > ahhh, ok, so maybe I was not totally understanding you, and now I see my > > text field does the same thing -- if you touch it, you get the IME, but > if > > you click it with the trackball press, no keyboard. Although I'm not > sure > > why a user would need to do that? > > > > > > > > On Wed, Dec 2, 2009 at 6:35 PM, Mark Wyszomierski <[email protected]> > wrote: > > > Hi Steve, > > > > > Thanks for taking a look - maybe I haven't set a parameter on my edit > > > text then? I'm doing: > > > > > EditText et = new EditText(context); > > > et.setInputType(InputType.TYPE_CLASS_TEXT); > > > et.setImeOptions(EditorInfo.IME_ACTION_SEARCH); > > > et.setOnTouchListener(...); // touch listener works perfectly. > > > et.setOnClickListener(new OnClickListener() { > > > public void onClick(View arg0) { > > > Log.d(TAG, "We were clicked!"); > > > } > > > }); > > > > > so click always prints the message, it's just that the IME keyboard > > > doesn't come up for me when the handler is added. Take away the call > > > to setOnClickListener(), and the keyboard appears again. I'll try > > > writing another test for it, > > > > > Thanks > > > > > On Dec 2, 9:30 pm, Steve <[email protected]> wrote: > > > > I just dug into an edit text I was working on a while back, and I see > > > > I used setOnKeyListener and setOnTouchListener in addition to > > > > setOnClickListener. Not 100% that I remember why I had to do that :) > > > > but in any case the soft keyboard will open when you click or touch > > > > the edit text, and also you can track all of its keystrokes. And I > > > > can track when the edit text is clicked. > > > > > > On Dec 2, 11:46 am, Mark Wyszomierski <[email protected]> wrote: > > > > > > > Still stuck on this, if anyone has a suggested work around - I > > > > > basically just want to know when an EditText is clicked, but also > make > > > > > sure the IME keypad is displayed when clicked (the OnClickListener > > > > > seems to block that default behavior). > > > > > > > I tried to check if the keypad is visible/active with the > following, > > > > > but it always reports true, however I can't see it on screen: > > > > > > > InputMethodManager imm = (InputMethodManager)getContext > > > > > ().getSystemService(Context.INPUT_METHOD_SERVICE); > > > > > if (imm.isActive() == false) { > > > > > Log.d(TAG, "key pad is not active."); > > > > > } > > > > > > > is there another way to check if the keypad is really visible? > > > > > > > Thanks > > > > > > > On Nov 30, 1:35 am, Mark Wyszomierski <[email protected]> wrote: > > > > > > > > Hi, > > > > > > > > I have an EditText. If I set an OnClickListener for it, > theimekeypad > > > > > > doesn't appear when I click it (using the trackball on the G1): > > > > > > > > EditText edit = new EditText(context); > > > > > > edit.setOnClickListener(new OnClickListener() { > > > > > > public void onClick(View v) { > > > > > > //imekeypad won't appear when this is set and clicked. > > > > > > } > > > > > > }); > > > > > > > > if I don't set the click listener, the keypad will appear when > > > > > > clicked. Is this expected behavior, or am I doing something > wrong? > > > > > > > > Thanks > > > > > -- > > > You received this message because you are subscribed to the Google > > > Groups "Android Developers" group. > > > To post to this group, send email to > [email protected] > > > To unsubscribe from this group, send email to > > > [email protected]<android-developers%[email protected]> > <android-developers%[email protected]<android-developers%[email protected]> > > > > > For more options, visit this group at > > >http://groups.google.com/group/android-developers?hl=en > > > > -- > > Android mobile application developmenthttp://steveoliverc.wordpress.com/ > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected]<android-developers%[email protected]> > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- Dianne Hackborn Android framework engineer [email protected] Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

