android EditText控制光标的位置

利用自定义键盘,需要手动删除编辑框中的文本时,会根据光标的位置来删除字符。那么,如何来控制光标呢,android为我们提供了哪些方法,来处理光标呢?

这里提供几个自己写的方法,根据这些方法可以满足在光标任何位置删除字符的要求。

// 往文本框中添加内容
	public void addString(String sequence) {
		int index = getEditSelection();// 光标的位置
		if (index < 0 || index >= getEditTextViewString().length()) {
			dia_et_pwd.append(sequence);
			Log.i(TAG, "str===" + str);
		} else {
			dia_et_pwd.getEditableText().insert(index, sequence);// 光标所在位置插入文字
		}
	}

	// 获取光标当前位置
	public int getEditSelection() {
		return dia_et_pwd.getSelectionStart();
	}

	// 获取文本框的内容
	public String getEditTextViewString() {
		return dia_et_pwd.getText().toString();
	}

	// 清除文本框中的内容
	public void clearText() {
		dia_et_pwd.getText().clear();
	}

	// 删除指定位置的字符
	public void deleteEditValue(int index) {
		dia_et_pwd.getText().delete(index - 1, index);
	}

	// 设置光标位置
	public void setEditSelectionLoc(int index) {
		dia_et_pwd.setSelection(index);
	}

	// 判断是否是数字
	public static boolean isNum(String str) {
		return str.matches("([0-9]+)?)$");
	}


原文地址:https://www.cnblogs.com/fuhaots2009/p/3483484.html