我有一个EditText
我想以两种方式使用的
- 单击时,所有内容都被选中,用户可以更改输入。
- 长按时,文本颜色会发生变化,其余时间不会对用户产生任何影响。
我试图清除它的焦点,但每次我在长按后放手时都会选择所有内容。可能是因为android:selectAllOnFocus="true"
在 XML 文件中。但我确实希望在用户刚刚触摸 ET 时选择所有内容,而不是在长按后选择。
到目前为止,我得到的代码是:
main.java
ET = (EditText) findViewById(R.id.someET);
ET.setRawInputType(Configuration.KEYBOARD_12KEY);
ET.setOnEditorActionListener(new DoneOnEditorActionListener());
ET.setOnLongClickListener(new myLongClickListener());
class DoneOnEditorActionListener implements OnEditorActionListener {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
v.clearFocus();
InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
return true;
}
return false;
}
}
class MyLongClickListener implements OnLongClickListener{
private boolean locked = false;
@Override
public boolean onLongClick(View view) {
if(locked){
((EditText)view).setTextColor(0xFF000000);
} else {
((EditText)view).setTextColor(0xFFFF0000);
}
locked =! locked;
return true;
}
}
当用户按下输入/完成按钮时,DoneOnEditorActionListener 就在那里,ET 将失去焦点并且键盘将隐藏。