我不希望用户在EditText框的中间插入任何内容。我只想让用户点击EditText框以显示键盘,并插入EditText框的末尾。
有没有办法禁用用户在单击EditText框时更改光标位置的能力?
如果答案是用XML或Java完成的,我不介意。
谢谢:)
编辑:如果我必须使用setSelection,有没有办法检测单击EditText框的时间?这样我就可以在用户点击EditText时将光标设置回到最后。
答案 0 :(得分:1)
使用setSelection设置光标位置。但这不会锁定插入点。如果您创建自定义视图并且子类EditText覆盖setSelectionChanged以强制进行不同的更改,您可以判断是否有人更改了选择。您可能还想覆盖onTextChanged以验证发生的任何更改都不会破坏您的规则。
答案 1 :(得分:0)
你可以应用这个技巧,这对我有用。 只需从edittext中禁用光标,然后在其单击侦听器上添加将光标保持在最右侧的代码。
这是我尝试的代码。
<EditText
android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:text="12"
android:background="@color/white"
android:padding="@dimen/activity_margin_10"
/>
Java代码
EditText mEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
mEditText = (EditText)findViewById(R.id.edit); // Initialzation of Edittext
mEditText.setSelection(mEditText.getText().length()); // After initialization keep cursor on right side
mEditText.setCursorVisible(false); // Disable the cursor.
/*
Add Click listener and on put your code that will keep cursor on right side
*/
mEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mEditText.setSelection(mEditText.getText().length());
}
});
}
希望它会对你有所帮助。
答案 2 :(得分:0)
要在EditText框的末尾插入。
您只需要将重力设置为正确的
android:gravity="right"
有没有办法禁用用户更改的功能 单击EditText框的光标位置?
您可以使用xml属性android:cursorVisible="false"
或java函数setCursorVisible(false)
。