我写了一个Android应用程序
我设置了editText.setOnClickListener(...)
但是我看到当用户点击时,软键盘才会打开,只有
当用户点击键盘键时 - 调用onClick()
。
如何在打开软键盘之前抓住点击?
我想避免键盘打开。
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.phone_login);
initMembers();
setOnClickListeners();
initFieldsTexts();
setKeyboardVisibilityListener();
}
private void setOnClickListeners() {
mPhoneNumberField.setInputTextOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
setResult(RESULT_CANCELED);
finish();
}
});
}
和
public class PhoneLoginFillInField extends LinearLayout {
..
public void setInputTextOnClickListener(OnClickListener onClickListener)
{
mInputText.setOnClickListener(onClickListener);
}
在调试期间,我看到这行被调用了两次
mPhoneNumberField.setInputTextOnClickListener(new OnClickListener() {
虽然它仅从onCreate调用,但setOnClickListeners();
被调用一次
答案 0 :(得分:1)
你的意思是EditText不应该获得焦点;它只需要响应点击事件。这样做:
editText.setFocusableInTouchMode(false);
然后继续:
editText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// Your code...
}
}
答案 1 :(得分:0)
将onTouchListener设置为EditView。请记住返回true以避免事件传播。