5

があるのに がないのはsetSelectionなぜですか?InputConnectiongetSelection()

getTextBeforeCursor(VERY_HIGH_NUMBER, 0)その文字列の を実行して計算するだけ.length()ですか?

4

3 に答える 3

2

getSelection()同意します、存在しないのはばかげています。あなたのソリューションは問題なく動作しますが、選択したテキスト範囲全体ではなく、カーソルが表示されているだけであると想定する必要があります。その穴を埋める方法はまだわかっていません。

編集: ああ、もちろん:

int selStart = ic.getTextBeforeCursor(HIGH_NUMBER, 0).length();
String sel = ic.getSelectedText(); 
int selEnd = selStart + (sel==null? 0: sel.length());
于 2011-05-19T01:50:27.537 に答える
0

この問題がありました。EditTextmy への参照をリファクタリングして、唯一のものを使用したかったのInputConnectionです。選択の開始と終了を取得するために、getExtractedText(…)次のような方法を使用することになりました。

    private static final ExtractedTextRequest request = new ExtractedTextRequest();
    private InputConnection ic;

// …

    ExtractedText extractedText = ic.getExtractedText(request, 0);
    int start = extractedText.selectionStart;
    int end = extractedText.selectionEnd;
于 2020-01-10T23:10:21.240 に答える