在我的应用程序中,我有EditText元素,但我像TextView一样使用它(它不可编辑)。
我想通过点击某个按钮选择此字段中的所有文字。 我用下一个代码
来做Selection.setSelection((Spannable) et.getText(),0, et.getText().length());
et.setSelected(true);
它工作正常并选择了文本但在此之后我无法更改选择的结尾。 如何以编程方式调用选择句柄?
我也阻止了OnLongClick,因为我只需要复制选项并将其添加到自定义按钮中。
答案 0 :(得分:1)
您需要确保EditText
在布局文件中包含属性android:textIsSelectable="true"
。
你也可以做同样的事情
et.setTextIsSelectable(true);
但请确保您的应用minSdkVersion
为11
才能使用此功能。
答案 1 :(得分:0)
尝试这样的事情
et.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
int strt= et.getSelectionStart();
int end = et.getSelectionEnd();
Log.i(" Selectionm",et.getText().toString().substring(strt, end));
return false;
}
});
答案 2 :(得分:0)
使用必需的android:textIsSelectable="true"
,以EditText或TextView作为参数调用以下方法:
private fun forceSelectionWithHandlesVisible(view: TextView) {
if (!view.hasSelection()) {
view.performLongClick()
}
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) {
// Hack required to make the selection handles visible when focus programmatically
val event = MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_UP, 0F, 0F, 0)
with(event) {
view.onTouchEvent(this)
recycle()
}
}
}
为我工作。