Android 点击EditText里的文字,如何获取当前文字在输入文本的具体位置?

Android 点击EditText里的文字,如何获取当前文字在输入文本的具体位置?

阅读 3.2k
2 个回答

editText.setSelection(Edittext.length())

Example

EditText editText = findViewById(R.id.editText);
editText.setSelection(editText.getText().length());

通过此方法禁止弹出系统键盘,调用自定义键盘,并且在editext的setOnTouchListener事件中要返回false,不然无法将光标移到手指点击的位置。
private void showEditText(EditText edit) {

    if (android.os.Build.VERSION.SDK_INT <= 10) {//4.0以下
        edit.setInputType(InputType.TYPE_NULL);
    } else {
        this.act.getWindow().setSoftInputMode(
                WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
        try {
            Class<EditText> cls = EditText.class;
            Method setShowSoftInputOnFocus;
            setShowSoftInputOnFocus = cls.getMethod("setShowSoftInputOnFocus",
                    boolean.class);
            setShowSoftInputOnFocus.setAccessible(true);
            setShowSoftInputOnFocus.invoke(edit, false);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题