android 怎样监听软键盘关闭

android 怎样监听软键盘关闭,第1张

 我们在android手机上搭郑面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面在点击搜索框的时候,点击右下角的search符号键可以进行搜索或者在全部数据输入完毕后,点击右下角的"done"就马上进行下一步 *** 作。

function 1:

重写Activity的dispatchKeyEvent(KeyEvent event)方法,在其中监听KeyEventKey.KEYCODE_ENTER键(右下角确定键),当此键按下的时候,隐藏输入法软键盘,设置edittext内容和加载webview内容。

@Override

public boolean dispatchKeyEvent(KeyEvent event) {

if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER){

/*隐藏软键盘*/

InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)

if(inputMethodManager.isActive()){

inputMethodManager.hideSoftInputFromWindow(MainActivity.this.getCurrentFocus().getWindowToken(), 0)

edittext.setText("success")

webview.loadUrl(URL)

return true

return super.dispatchKeyEvent(event)

}

function 2:

重写dispatchKeyEvent(KeyEvent event)的方法感觉有点用牛刀的感觉,因为我们非常可能在这个方法中进行其他任务,所以我们可以使用OnKeyListener的方法来监听软键盘按键。

private OnKeyListener onKeyListener = new OnKeyListener() {

@Override

public boolean onKey(View v, int keyCode, KeyEvent event) {

if(keyCode == KeyEvent.KEYCODE_ENTER){

/*隐藏软键盘*/

InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)

if(inputMethodManager.isActive()){

inputMethodManager.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0)

edittext.setText("桥神success")

webview.loadUrl(URL)

return true

return false

}

edittext.setOnKeyListener(onKeyListener)

function 3:

第三种方法我认为可以帮助程序员更精确的判断右下角按键情况,以便应对更加复杂的情况。它可以帮助程序员依据当前邮件下为“GO”,“done”,“search”键的情况下做出更细分的 *** 作。

edittext.setOnEditorActionListener(new TextView.OnEditorActionListener() {

@Override

public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {

/*判知消颂断是否是“GO”键*/

if(actionId == EditorInfo.IME_ACTION_GO){

/*隐藏软键盘*/

InputMethodManager imm = (InputMethodManager) v

.getContext().getSystemService(

Context.INPUT_METHOD_SERVICE)

if (imm.isActive()) {

imm.hideSoftInputFromWindow(

v.getApplicationWindowToken(), 0)

edittext.setText("success")

webview.loadUrl(URL)

return true

return false

})

可以给application注册一个ondestroy事件,即销毁时触发的事件。

在Android中,Activity有个栈,一个Activity结束掉,会回到上一个Activity,并不是退盯孝迹出应用程序

Android中慎漏,退出应用程序的方式:

1.通过凯并pid

int pid = android.os.Process.myPid() //获取当前应用程序的PID

android.os.Process.killProcess(pid) //杀死当前进程

这种方法退出应用,是会保留某些后进程,例如:Service,Notifications等。

2.通过ActivityManager

ActivityManager manager = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE)//获取应用程序管理器

manager.killBackgroundProcesses(getPackageName())//强制结束当前应用程序

这种方式退出应用,会结束本应用程序的一切活动,因为本方法会根据应用程序的包名杀死所有进程包括Activity,Service,Notifications等。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8178371.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存