I'm attempting to work out how BaseInputConnection works using the
SpannableStringBuilder as the Editable and have this code:
public class MyInputConnection extends BaseInputConnection {
private static final String DEBUG_TEST = new String("ABCDEF");
private SpannableStringBuilder mEditable;
public CrosswordInputConnection(View targetView, boolean fullEditor)
{
super(targetView, fullEditor);
}
public Editable getEditable() {
if (mEditable == null) {
mEditable = (SpannableStringBuilder)
Editable.Factory.getInstance().newEditable(DEBUG_TEST);
}
return mEditable;
}
public boolean commitText(CharSequence text, int newCursorPosition) {
mEditable.append(text);
return true;
}
public ExtractedText getExtractedText(ExtractedTextRequest request,
int flags) {
ExtractedText ext = new ExtractedText();
ext.text = mEditable.toString();
return ext;
}
}
What I'm having trouble understanding is where the cursor is set in
the Editable/SpannableStringBuilder. The mEditable.mText member
contains 'ABCDEF' (as per the getEditable call). When the soft
keyboard pops up, and I press 'x' this breaks into the commitText()
method above. The mEditable.append(text) (of the 'x' char) applies
the 'x' to mEditable.mText[0], rather than at the end (which is what
one would expect with an append() call). So, clearly I'm missing
something here with regards to the placement of a cursor or somesuch
within the Editable object. I'd appreciate a push in the right
direction.
--
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