java-如何使用onBackPressed()看到带有SoftKeyboard的活动的finish()活动
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何使用onBackPressed()看到带有SoftKeyboard的活动的finish()活动,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1348字,纯文字阅读大概需要2分钟。
内容图文
![java-如何使用onBackPressed()看到带有SoftKeyboard的活动的finish()活动](/upload/InfoBanner/zyjiaocheng/664/bb1afbb8d68143c8848db1eb892cb54c.jpg)
我有一个活动,整个屏幕专用于发送一条消息.上半部分为一个EditText,而下半部分始终可见SoftKeyboard.
当我按回去时,软键盘将隐藏,我必须再次按回去才能退出活动.
我正在努力获得的行为是:当我按下后退按钮时立即完成活动,而不是隐藏键盘.
例如,编写新的tweet时,您可以在twitter应用程序中找到此行为.
我尝试覆盖onBackPressed()函数,但似乎当键盘可见时,未调用该函数.
@Override
public void onBackPressed() {
finish();
}
任何帮助将非常感激!
解决方法:
因此,在尝试了许多事情之后,这里的方法起作用了:
子类EditText并重写onKeyPreIme()函数以发送回叫.
这是子类的代码:
OnKeyPreImeListener onKeyPreImeListener;
public void setOnKeyPreImeListener(OnKeyPreImeListener onKeyPreImeListener) {
this.onKeyPreImeListener = onKeyPreImeListener;
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
if(onKeyPreImeListener != null)
onKeyPreImeListener.onBackPressed();
Log.d(TAG, "HIDING KEYBOARD");
return false;
}
return super.dispatchKeyEvent(event);
}
public interface OnKeyPreImeListener {
void onBackPressed();
}
然后在您的活动中为每个TextView:
EditTextGraphee.OnKeyPreImeListener onKeyPreImeListener =
new EditTextGraphee.OnKeyPreImeListener() {
@Override
public void onBackPressed() {
Log.d(TAG, "CALL BACK RECEIVED");
MyActivity.this.onBackPressed();
}
};
editText.setOnKeyPreImeListener(onKeyPreImeListener);
内容总结
以上是互联网集市为您收集整理的java-如何使用onBackPressed()看到带有SoftKeyboard的活动的finish()活动全部内容,希望文章能够帮你解决java-如何使用onBackPressed()看到带有SoftKeyboard的活动的finish()活动所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。