gpt4 book ai didi

Android 输入法,获取 EditText 实例

转载 作者:搜寻专家 更新时间:2023-11-01 08:13:51 25 4
gpt4 key购买 nike

我目前正在开发一个 IME,它需要知道文本内容才能计算出光标所在的行和字符等内容。这适用于全屏模式下的提取文本,但我不想强制全屏。这是我当前实现的相关代码:

private ExtractEditText mExtract;

...

    mExtract = new ExtractEditText(this);
mExtract.setId(android.R.id.inputExtractEditText);
setExtractView(mExtract);

...

@Override public void onUpdateSelection(int oldSelStart, int oldSelEnd, int newSelStart, int newSelEnd, int candidatesStart, int candidatesEnd) {
super.onUpdateSelection(oldSelStart, oldSelEnd, newSelStart, newSelEnd, candidatesStart, candidatesEnd);
String textToMeasure = mExtract.getText().toString().substring(0, newSelStart);
Log.w("myIME", "Line: " + countLines(textToMeasure));
}

最佳答案

我查看了 InputMethodService 的源代码,发现它是如何提取文本以供 ExtractEditText 使用的,因此我能够创建一个解决方案:

private String getExtractText() {
ExtractedTextRequest req = new ExtractedTextRequest();
req.token = 0;
req.flags = InputConnection.GET_TEXT_WITH_STYLES;
req.hintMaxLines = 10;
req.hintMaxChars = 10000;
ExtractedText et = getCurrentInputConnection().getExtractedText(req, InputConnection.GET_EXTRACTED_TEXT_MONITOR);
return et.text.toString();
}

关于Android 输入法,获取 EditText 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6873577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com