Android 如何从EditText OnClickListener中动态选择文本?

Android 如何从EditText OnClickListener中动态选择文本?,android,android-widget,Android,Android Widget,我想在OnClickListener上使用android select文本功能,而不是onlongclicklistener。有没有办法做到这一点?有人能帮我吗?感谢使用xml: android:selectAllOnFocus="true" 带代码(选项1): 带代码(选项2): 使用xml: android:selectAllOnFocus="true" 带代码(选项1): 带代码(选项2): 如果要选择所有文本,答案将提供多个选项 如果没有,则使用onclicklistener并对Ed

我想在OnClickListener上使用android select文本功能,而不是onlongclicklistener。有没有办法做到这一点?有人能帮我吗?感谢使用xml:

android:selectAllOnFocus="true"
带代码(选项1):

带代码(选项2):

使用xml:

android:selectAllOnFocus="true"
带代码(选项1):

带代码(选项2):

如果要选择所有文本,答案将提供多个选项

如果没有,则使用onclicklistener并对EditText调用setSelection

编辑:

如果要选择所有文本,答案将提供多个选项

如果没有,则使用onclicklistener并对EditText调用setSelection

编辑:


另一种完全不同的方法是尝试从EditText的onClick处理程序调用。这可能允许您使用默认的长单击功能,但可以从onClick调用它

theEditText.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View view) {
        EditText editText = (EditText)view;
        editText.performLongClick();
    }
});

另一种完全不同的方法是尝试从EditText的onClick处理程序调用。这可能允许您使用默认的长单击功能,但可以从onClick调用它

theEditText.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View view) {
        EditText editText = (EditText)view;
        editText.performLongClick();
    }
});

谢谢您的回复。但问题是要随机选择文本,而不是整个文本。我想以更简单的方式使用android上下文菜单功能,比如,如果我在“编辑文本”中单击文本,它的起点是选择文本,并在选择后要求复制和粘贴,这就是我想要做的。有办法吗?谢谢,我刚刚更新了我的答案。您可以提供开始和结束int值以进行特定选择感谢您的回复Waqas。但问题是要随机选择文本,而不是整个文本。我想以更简单的方式使用android上下文菜单功能,比如,如果我在“编辑文本”中单击文本,它的起点是选择文本,并在选择后要求复制和粘贴,这就是我想要做的。有办法吗?谢谢,我刚刚更新了我的答案。您可以提供开始和结束int值以进行特定选择感谢您的回答。但是你能给我详细的例子说明如何使用edittext的setSelection方法吗。正如我通过扩展EditText类使用的那样。但是我不知道如何使用它在点击时选择文本。谢谢。我添加了一个代码示例,可以选择所有文本,但是您可以通过为setSelection参数提供不同的选项来定制选择(此方法有几个版本)。谢谢您的回答。但是你能给我详细的例子说明如何使用edittext的setSelection方法吗。正如我通过扩展EditText类使用的那样。但是我不知道如何使用它来点击选择文本。谢谢。我添加了一个代码示例,可以选择所有文本,但是您可以通过为setSelection参数提供不同的选项来定制选择(此方法有几个版本)。
theEditText.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View view) {
        EditText editText = (EditText)view;
        editText.performLongClick();
    }
});