Thank you for such a quick reply!
please see my comments in line.

On Mar 27, 3:14 pm, Dianne Hackborn <[email protected]> wrote:
> On Fri, Mar 27, 2009 at 12:04 AM, Paranoia <[email protected]> wrote:
> > 1. why InputMethodService force the ime developer to follow the fixed
> > layout - extracted text, candidate view and input view. i want to
> > layout them by myself. can i do this via derive the
> > AbstractInputMethodService? if yes, can android team keep this
> > abstract class always open and stable?
>
> I would strongly recommend against using that directly.  Using
> InputMethodService isn't really going to limit what you can do, and it takes
> care of a lot of the details of interacting correctly with the application.
>
> There is a lot of default functionality in InputMethodService for providing
> the correct standard behavior for an IME.  If you want to force particular
> behavior, there are various methods you can override to impact that.  Just
> go through the methods and see what you want to do.
>
> For example, if you want to do your own candidate view, just do that.  Don't
> call the method to show the candidate view.  Likewise if you want to always
> run in fullscreen/extract mode, then implement the method that decides when
> to be in that mode and just always do it.
>
> > BTW: InputMethodService is
> > really hard to use.
>
> Well writing a well behaving input method is a little harder than writing a
> regular application. :)
>
> > 2. what's the correct behavior of the InputConnection.commitText?
> > i write the following code. but it can not satisfy me.
> > ...
> > InputConnection ic = getInputConnection();
> > ic.commitText(textA, 1);
> > ic.commitText(textB, 0);
>
> > i want the cursor to before the textB and after the textA. but it
> > always be present after textB.
>
> Use -1 for the second param; I am pretty sure the doc explains how the
> cursor position argument works.

i tried this the cursor is moved before textA....
let me summarize the test result.  (i use "|" to represent the cursor)

ic.commitText(textA, 1);
ic.commitText(textB, 0);
result: textA textB |

ic.commitText(textA, 1);
ic.commitText(textB, -1);
result: | textA textB

I want this:
result: textA | textB

actually, i found that the results are same whatever the
newCursorPosition is 0 or 1. seems it's not so consistent with the
comment.



>
> Also please note...  there is not yet an SDK for cupcake, these are all new
> APIs, I have no idea of what build you are working against, and depending on
> which that is various things may or may not be broken, or have changed, or
> whatever else.

Thank you for you advice. I have been following the code changes for a
long time. :-)


> --
> 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.  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
-~----------~----~----~----~------~----~------~--~---

Reply via email to