如何在EditText中将Selection扩展为整个单词?

时间:2016-06-19 23:34:43

标签: java android string android-edittext selection

所以,我有一个EditText视图,我的想法是,现在,让我们说,触摸事件选择并将触摸的单词复制到剪贴板内存。到目前为止,我可以通过偏移设置选择,但它只是"",因为getSelectionStart() = getSelectionEnd() = offset。如何将其扩展到下一个遇到的空格或文本的结束/开始。

我怎样才能以上述方式扩展一个这样的选择?

到目前为止

代码:

@Override
public boolean onTouch(View v, MotionEvent event)
{
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        float x = event.getX() + getScrollX();
        int offset = getOffset(event);
        if(offset != Integer.MIN_VALUE){
                setSelection(offset);
                String selectedText = getText().toString()
                            .substring(getSelectionStart(), getSelectionEnd());

                   //TODO: extend selection otherwise copies ""

                putInClipMemory(selectedText);
        }
    return true;
} 

感谢。

1 个答案:

答案 0 :(得分:2)

您应该能够在开始选择索引之后计算下一个空格的索引,并在您和&endIndex时调用getSelectionEnd(),而不是substring。 #39;重新设置selectedText

例如

String substringFromStartSelection = getText().toString().substring (getSelectionStart());
int nextSpaceIndex = substringFromStartSelection.indexOf(" "); 
int selectionEnd = getSelectionStart() + nextSpaceIndex;