Android----EditText 光标仿ios,默认在最后面,点击整栏也在最后面,点击文本光标在对应位置
最近有个需求,要求edit的光标在默认在最右端
点击联系人或者联系方式整栏,首先也是作为选中状态,光标依然要在最后面
当点击文本中间,光标移动到文本中间.
针对这个需求,按网上的方法,更改了一部分的判断
public class LastInputEditText extends android.support.v7.widget.AppCompatEditText { public LastInputEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setSelection(getText().length()); } public LastInputEditText(Context context, AttributeSet attrs) { this(context, attrs, android.support.v7.appcompat.R.attr.editTextStyle); } public LastInputEditText(Context context) { this(context, null); } @Override protected void onSelectionChanged(int selStart, int selEnd) { super.onSelectionChanged(selStart, selEnd); //光标首次获取焦点是在最后面,之后操作就是按照点击的位置移动光标 if (isEnabled() && hasFocus() && hasFocusable()) { if (selStart==0){ setSelection(getText().length()); }else { setSelection(selEnd); } } else { setSelection(getText().length()); } } }
亲测可用,直接采用此自定义控件即可.