当前位置: 首页>>代码示例>>Java>>正文


Java InputConnection.getTextBeforeCursor方法代码示例

本文整理汇总了Java中android.view.inputmethod.InputConnection.getTextBeforeCursor方法的典型用法代码示例。如果您正苦于以下问题:Java InputConnection.getTextBeforeCursor方法的具体用法?Java InputConnection.getTextBeforeCursor怎么用?Java InputConnection.getTextBeforeCursor使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在android.view.inputmethod.InputConnection的用法示例。


在下文中一共展示了InputConnection.getTextBeforeCursor方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: doubleSpace

import android.view.inputmethod.InputConnection; //导入方法依赖的package包/类
private void doubleSpace() {
    //if (!mAutoPunctuate) return;
    if (mCorrectionMode == Suggest.CORRECTION_NONE) return;
    final InputConnection ic = getCurrentInputConnection();
    if (ic == null) return;
    CharSequence lastThree = ic.getTextBeforeCursor(3, 0);
    if (lastThree != null && lastThree.length() == 3
            && Character.isLetterOrDigit(lastThree.charAt(0))
            && lastThree.charAt(1) == KEYCODE_SPACE && lastThree.charAt(2) == KEYCODE_SPACE) {
        ic.beginBatchEdit();
        ic.deleteSurroundingText(2, 0);
        ic.commitText(". ", 1);
        ic.endBatchEdit();
        updateShiftKeyState(getCurrentInputEditorInfo());
        mJustAddedAutoSpace = true;
    }
}
 
开发者ID:PhilippC,项目名称:keepass2android,代码行数:18,代码来源:KP2AKeyboard.java

示例2: isCursorTouchingWord

import android.view.inputmethod.InputConnection; //导入方法依赖的package包/类
private boolean isCursorTouchingWord() {
    InputConnection ic = getCurrentInputConnection();
    if (ic == null) return false;
    CharSequence toLeft = ic.getTextBeforeCursor(1, 0);
    CharSequence toRight = ic.getTextAfterCursor(1, 0);
    if (!TextUtils.isEmpty(toLeft)
            && !isWordSeparator(toLeft.charAt(0))
            && !isSuggestedPunctuation(toLeft.charAt(0))) {
        return true;
    }
    if (!TextUtils.isEmpty(toRight)
            && !isWordSeparator(toRight.charAt(0))
            && !isSuggestedPunctuation(toRight.charAt(0))) {
        return true;
    }
    return false;
}
 
开发者ID:PhilippC,项目名称:keepass2android,代码行数:18,代码来源:KP2AKeyboard.java

示例3: revertLastWord

import android.view.inputmethod.InputConnection; //导入方法依赖的package包/类
public void revertLastWord(boolean deleteChar) {
    final int length = mComposing.length();
    if (!mPredicting && length > 0) {
        final InputConnection ic = getCurrentInputConnection();
        mPredicting = true;
        mJustRevertedSeparator = ic.getTextBeforeCursor(1, 0);
        if (deleteChar) ic.deleteSurroundingText(1, 0);
        int toDelete = mCommittedLength;
        CharSequence toTheLeft = ic.getTextBeforeCursor(mCommittedLength, 0);
        if (toTheLeft != null && toTheLeft.length() > 0
                && isWordSeparator(toTheLeft.charAt(0))) {
            toDelete--;
        }
        ic.deleteSurroundingText(toDelete, 0);
        ic.setComposingText(mComposing, 1);
        TextEntryState.backspace();
        postUpdateSuggestions();
    } else {
        sendDownUpKeyEvents(KeyEvent.KEYCODE_DEL);
        mJustRevertedSeparator = null;
    }
}
 
开发者ID:PhilippC,项目名称:keepass2android,代码行数:23,代码来源:KP2AKeyboard.java

示例4: appendText

import android.view.inputmethod.InputConnection; //导入方法依赖的package包/类
/**
 * Append newText to the text field represented by connection.
 * The new text becomes selected.
 */
public static void appendText(InputConnection connection, String newText) {
    if (connection == null) {
        return;
    }

    // Commit the composing text
    connection.finishComposingText();

    // Add a space if the field already has text.
    CharSequence charBeforeCursor = connection.getTextBeforeCursor(1, 0);
    if (charBeforeCursor != null
            && !charBeforeCursor.equals(" ")
            && (charBeforeCursor.length() > 0)) {
        newText = " " + newText;
    }

    connection.setComposingText(newText, 1);
}
 
开发者ID:PhilippC,项目名称:keepass2android,代码行数:23,代码来源:EditingUtil.java

示例5: getPreviousWord

import android.view.inputmethod.InputConnection; //导入方法依赖的package包/类
public static CharSequence getPreviousWord(InputConnection connection,
        String sentenceSeperators) {
    //TODO: Should fix this. This could be slow!
    CharSequence prev = connection.getTextBeforeCursor(LOOKBACK_CHARACTER_NUM, 0);
    if (prev == null) {
        return null;
    }
    String[] w = spaceRegex.split(prev);
    if (w.length >= 2 && w[w.length-2].length() > 0) {
        char lastChar = w[w.length-2].charAt(w[w.length-2].length() -1);
        if (sentenceSeperators.contains(String.valueOf(lastChar))) {
            return null;
        }
        return w[w.length-2];
    } else {
        return null;
    }
}
 
开发者ID:PhilippC,项目名称:keepass2android,代码行数:19,代码来源:EditingUtil.java

示例6: swapPunctuationAndSpace

import android.view.inputmethod.InputConnection; //导入方法依赖的package包/类
private void swapPunctuationAndSpace() {
    final InputConnection ic = getCurrentInputConnection();
    if (ic == null) return;
    CharSequence lastTwo = ic.getTextBeforeCursor(2, 0);
    if (lastTwo != null && lastTwo.length() == 2
            && lastTwo.charAt(0) == KEYCODE_SPACE && isSentenceSeparator(lastTwo.charAt(1))) {
        ic.beginBatchEdit();
        ic.deleteSurroundingText(2, 0);
        ic.commitText(lastTwo.charAt(1) + " ", 1);
        ic.endBatchEdit();
        updateShiftKeyState(getCurrentInputEditorInfo());
        mJustAddedAutoSpace = true;
    }
}
 
开发者ID:PhilippC,项目名称:keepass2android,代码行数:15,代码来源:KP2AKeyboard.java

示例7: reswapPeriodAndSpace

import android.view.inputmethod.InputConnection; //导入方法依赖的package包/类
private void reswapPeriodAndSpace() {
    final InputConnection ic = getCurrentInputConnection();
    if (ic == null) return;
    CharSequence lastThree = ic.getTextBeforeCursor(3, 0);
    if (lastThree != null && lastThree.length() == 3
            && lastThree.charAt(0) == KEYCODE_PERIOD
            && lastThree.charAt(1) == KEYCODE_SPACE
            && lastThree.charAt(2) == KEYCODE_PERIOD) {
        ic.beginBatchEdit();
        ic.deleteSurroundingText(3, 0);
        ic.commitText(" ..", 1);
        ic.endBatchEdit();
        updateShiftKeyState(getCurrentInputEditorInfo());
    }
}
 
开发者ID:PhilippC,项目名称:keepass2android,代码行数:16,代码来源:KP2AKeyboard.java

示例8: maybeRemovePreviousPeriod

import android.view.inputmethod.InputConnection; //导入方法依赖的package包/类
private void maybeRemovePreviousPeriod(CharSequence text) {
    final InputConnection ic = getCurrentInputConnection();
    if (ic == null) return;

    // When the text's first character is '.', remove the previous period
    // if there is one.
    CharSequence lastOne = ic.getTextBeforeCursor(1, 0);
    if (lastOne != null && lastOne.length() == 1
            && lastOne.charAt(0) == KEYCODE_PERIOD
            && text.charAt(0) == KEYCODE_PERIOD) {
        ic.deleteSurroundingText(1, 0);
    }
}
 
开发者ID:PhilippC,项目名称:keepass2android,代码行数:14,代码来源:KP2AKeyboard.java

示例9: removeTrailingSpace

import android.view.inputmethod.InputConnection; //导入方法依赖的package包/类
private void removeTrailingSpace() {
    final InputConnection ic = getCurrentInputConnection();
    if (ic == null) return;

    CharSequence lastOne = ic.getTextBeforeCursor(1, 0);
    if (lastOne != null && lastOne.length() == 1
            && lastOne.charAt(0) == KEYCODE_SPACE) {
        ic.deleteSurroundingText(1, 0);
    }
}
 
开发者ID:PhilippC,项目名称:keepass2android,代码行数:11,代码来源:KP2AKeyboard.java

示例10: showPunctuationHintIfNecessary

import android.view.inputmethod.InputConnection; //导入方法依赖的package包/类
public boolean showPunctuationHintIfNecessary(InputConnection ic) {
    if (!mVoiceResultContainedPunctuation
            && ic != null
            && getAndIncrementPref(PREF_VOICE_PUNCTUATION_HINT_VIEW_COUNT)
                    < mPunctuationHintMaxDisplays) {
        CharSequence charBeforeCursor = ic.getTextBeforeCursor(1, 0);
        if (SPEAKABLE_PUNCTUATION.containsKey(charBeforeCursor)) {
            showHint(R.layout.voice_punctuation_hint);
            return true;
        }
    }

    return false;
}
 
开发者ID:PhilippC,项目名称:keepass2android,代码行数:15,代码来源:Hints.java

示例11: getWordRangeAtCursor

import android.view.inputmethod.InputConnection; //导入方法依赖的package包/类
private static Range getWordRangeAtCursor(
        InputConnection connection, String sep, Range range) {
    if (connection == null || sep == null) {
        return null;
    }
    CharSequence before = connection.getTextBeforeCursor(1000, 0);
    CharSequence after = connection.getTextAfterCursor(1000, 0);
    if (before == null || after == null) {
        return null;
    }

    // Find first word separator before the cursor
    int start = before.length();
    while (start > 0 && !isWhitespace(before.charAt(start - 1), sep)) start--;

    // Find last word separator after the cursor
    int end = -1;
    while (++end < after.length() && !isWhitespace(after.charAt(end), sep));

    int cursor = getCursorPosition(connection);
    if (start >= 0 && cursor + end <= after.length() + before.length()) {
        String word = before.toString().substring(start, before.length())
                + after.toString().substring(0, end);

        Range returnRange = range != null? range : new Range();
        returnRange.charsBefore = before.length() - start;
        returnRange.charsAfter = end;
        returnRange.word = word;
        return returnRange;
    }

    return null;
}
 
开发者ID:PhilippC,项目名称:keepass2android,代码行数:34,代码来源:EditingUtil.java

示例12: isFirstSentenceIndicate

import android.view.inputmethod.InputConnection; //导入方法依赖的package包/类
public static boolean isFirstSentenceIndicate(InputConnection inputConnection) {
    try {
        CharSequence lastTwoChars = inputConnection.getTextBeforeCursor(2, 0);
        if (lastTwoChars != null) {
            String twoChars = lastTwoChars.toString();
            return twoChars.length() == 0 || twoChars.trim().equals("?") || twoChars.trim().equals(".") || twoChars.trim().equals("!");
        }
        return false;
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}
 
开发者ID:MohammadAlBanna,项目名称:Swift-Braille-Soft-keyboard,代码行数:14,代码来源:Common.java

示例13: sameAsTextBeforeCursor

import android.view.inputmethod.InputConnection; //导入方法依赖的package包/类
private boolean sameAsTextBeforeCursor(InputConnection ic, CharSequence text) {
    CharSequence beforeText = ic.getTextBeforeCursor(text.length(), 0);
    return TextUtils.equals(text, beforeText);
}
 
开发者ID:PhilippC,项目名称:keepass2android,代码行数:5,代码来源:KP2AKeyboard.java


注:本文中的android.view.inputmethod.InputConnection.getTextBeforeCursor方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。