我想在Android中点击editText时隐藏按钮。最初我使用以下代码
editText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
button.setVisibility(View.INVISIBLE);
}
});
但为此我需要点击editText两次。因此,为了避免它,我将editText焦点设置为false
android:focusable="false"
以及EditText的OnClickListener中的以下代码
editText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
button.setVisibility(View.INVISIBLE);
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Service.INPUT_METHOD_SERVICE);
imm.showSoftInput(donationQuantity, 0);
}
});
在这种情况下,我只需点击editText即可隐藏按钮,但键盘不会弹出。
答案 0 :(得分:2)
请尝试使用setOnTouchListener:
editText.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
button.setVisibility(View.INVISIBLE);
return false;
}
});
答案 1 :(得分:1)
而不是onClick注册OnTouchListener并监听TouchDown事件, 每当触地事件发生时,检查按钮可见/不可见。
editText.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
editText.setFocusable(true);
editText.requestFocus();
}
return true;
}
});
答案 2 :(得分:0)
尝试使用此代码弹出键盘:
InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInputFromWindow(linearLayout.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);