mcs*_*vio 2 java user-interface android android-edittext
我有以下代码,每次触摸我的"redTime"EditText时都会触发.
redTime.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.i("click", "onMtouch");
redTime.setSelection(redTime.getText().length());
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
它意味着在每次触摸时将光标保持在EditText的右侧.问题是包含"setSelection"方法的行在第一次触摸控件时不起作用.也就是说,如果另一个控件具有焦点,并且我第一次触摸"redTime"控件,则触发该方法,但是光标保持在我触摸的位置(而不是右侧).
我如何知道听众的火灾?"Log.i"调用有效,但光标没有变化.我怀疑"setSelection"调用正在运行,但后来的一些事件正在否定它.
我试了几件事.我尝试通过在侦听器中返回TRUE来使用该事件.没工作.我尝试在OnTouchListener和OnFocusChanged中重复"setSelection"调用.仍然无法正常工作.
我差点忘了.这是有问题的控件的XML.
<EditText
android:id="@+id/redEditText"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:ellipsize="end"
android:gravity="right"
android:inputType="time"
android:text="@string/zeroTime"
android:textColor="#ff0000"
android:textSize="32sp" >
</EditText>
Run Code Online (Sandbox Code Playgroud)
小智 5
我最近遇到了这个问题并且无法正常工作,所以最终做到了这一点:
setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
postDelayed(new Runnable() {
@Override
public void run() {
setSelection(getText().length());
}
}, 50);
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14584 次 |
| 最近记录: |