带有软键盘和“返回”按钮的 EditText
Posted
技术标签:
【中文标题】带有软键盘和“返回”按钮的 EditText【英文标题】:EditText with soft keyboard and "Back" button 【发布时间】:2011-09-28 02:19:35 【问题描述】:当我使用“EditText”时,我有虚拟键盘。
第一次按下“返回”按钮会隐藏键盘。第二次按下在我的活动中调用“onBackPressed”回调。好的,但是...
我不知道如何钩住第一次按下。我需要在虚拟键盘关闭后立即处理输入数据。
欢迎提出任何想法。
谢谢。
【问题讨论】:
您可能需要查看此链接。 [***.com/a/28719420/4432143][1][1]:***.com/a/28719420/4432143 是的,这个问题已经过时了 4 年。无论如何,谢谢。 它与最新的奥利奥有关吗?几年来我不再使用 android,只能建议从下面检查解决方案。作为最后的手段,请咨询 AOSP 来源。有时它会有所帮助。 【参考方案1】:您可以使用此方法在键盘消失时覆盖:
public boolean onKeyPreIme(int keyCode, KeyEvent event)
if (keyCode == KeyEvent.KEYCODE_BACK &&
event.getAction() == KeyEvent.ACTION_UP)
// Do your thing here
return false;
return super.dispatchKeyEvent(event);
取自我的另一个答案@:Android: Error popup on EditText doesn't move down when keyboard goes away
【讨论】:
@Blundell 为什么你使用dispatchKeyEvent
而不是dispatchKeyEventPreIme
?
对不起,我不记得了 :-) 看起来都不错
但是怎么用,请多解释【参考方案2】:
自定义后退按钮:-
final RelativeLayout rrBack = (RelativeLayout) mCustomView.findViewById(R.id.rr_back);
rrBack.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
MyApplication.getInstance().getRequestQueue().cancelAll(FEED_DETAIL_TAG_REQUEST);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(rrBack.getWindowToken(), 0);
);
【讨论】:
以上是关于带有软键盘和“返回”按钮的 EditText的主要内容,如果未能解决你的问题,请参考以下文章