我想在用户点击EditText(触摸)时启动EditText选择 我这样做了代码:
int startIndex = txtMean.getSelectionStart();
这总是返回0;
和EditText xml代码:
<EditText
android:id="@+id/txtMean"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:hint=""
android:inputType="textMultiLine"
android:scrollbars="none" />
我的代码在android 2. *中工作,但在4。*
中不起作用答案 0 :(得分:0)
txtMean.getSelectionStart();
getSelectionStart与用户的上次触摸或点击本身无关。它涉及屏幕上的文本选择。默认情况下,当用户执行长按时,文本句柄将出现,并允许用户展开突出显示的文本选择。这是引用选择的突出显示文本,不一定是用户上次触摸的位置。
当用户进行文本选择时,它会突出显示,因为EditText会将SelectionSpan应用于字符序列,而getSelectionStart将返回此范围的起始值。
更新,解决方案帮助:
@Override
public boolean onTouchEvent(MotionEvent event) {
// this = EditText;
// will give you the position of the nearest chracter.
int offset = this.getOffsetForPosition(event.getX(), event.getY());