【发布时间】:2010-08-10 16:19:36
【问题描述】:
假设用户在 EditText 中写入了一些文本,然后触摸了屏幕上的其他位置,这导致光标位置发生了变化:如何确定新的光标位置?
【问题讨论】:
标签: android android-ui
假设用户在 EditText 中写入了一些文本,然后触摸了屏幕上的其他位置,这导致光标位置发生了变化:如何确定新的光标位置?
【问题讨论】:
标签: android android-ui
简单版:
myEditText.getSelectionStart();
如果你想对事件做出反应,你可以尝试
myEditText.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
// view is myEditText here
}
});
event 允许区分新闻和发布。
EditText 也有一个 setOnClickListener() 可能值得一看。
编辑:
我忘了提到onSelectionChanged(int selStart, int selEnd),如果位置发生变化,selEnd 等于 selStart。
【讨论】:
最好和安全的方法是使用 TextWatcher
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
int cursorIndex = start + 1;
}
【讨论】: