卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

Android隱藏輸入法軟鍵盤的一些說(shuō)明

在編寫一個(gè)仿微信的Android聊天軟件時(shí),我發(fā)現(xiàn)了一個(gè)嚴(yán)重的BUG。當(dāng)用戶點(diǎn)擊輸入框用軟鍵盤輸入文本的同時(shí)點(diǎn)擊了“返回好友列表”按鈕,返回到好友列表時(shí)軟鍵盤無(wú)法關(guān)閉。 為了解決這個(gè)問(wèn)題,我上網(wǎng)找了

在編寫一個(gè)仿微信的Android聊天軟件時(shí),我發(fā)現(xiàn)了一個(gè)嚴(yán)重的BUG。當(dāng)用戶點(diǎn)擊輸入框用軟鍵盤輸入文本的同時(shí)點(diǎn)擊了“返回好友列表”按鈕,返回到好友列表時(shí)軟鍵盤無(wú)法關(guān)閉。

為了解決這個(gè)問(wèn)題,我上網(wǎng)找了一些關(guān)于Android如何隱藏輸入法的方法。普遍的方法如下:

((InputMethodManager)getSystemService(_METHOD_SERVICE)).hideSoftInputFromWindow(().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

然而,當(dāng)我將這段代碼加入到返回按鈕的點(diǎn)擊事件后,發(fā)現(xiàn)當(dāng)用戶點(diǎn)擊了返回按鈕時(shí)App異常退出,并沒(méi)有報(bào)錯(cuò)。我查詢了一下Android開(kāi)發(fā)官網(wǎng),發(fā)現(xiàn)實(shí)現(xiàn)以上功能的代碼應(yīng)該這樣寫:

((InputMethodManager) getSystemService(_METHOD_SERVICE)).hideSoftInputFromWindow((), InputMethodManager.HIDE_NOT_ALWAYS);

這里的editview是輸入框。之所以用第二段代碼能夠?qū)崿F(xiàn)所需功能,是因?yàn)榈诙未a是關(guān)閉指定輸入框的輸入法,而第一段代碼則針對(duì)整個(gè)Activity。在實(shí)際情況下,輸入法是在輸入框獲得焦點(diǎn)時(shí)打開(kāi)的,而不是在Activity全局打開(kāi)的,所以第一段代碼無(wú)法起效,并且會(huì)導(dǎo)致異常退出。

當(dāng)然,在某些游戲中可能會(huì)用到針對(duì)Activity全局打開(kāi)的輸入法軟鍵盤。因此,在使用關(guān)閉軟鍵盤的代碼時(shí),一定要注意關(guān)閉之前是哪個(gè)控件觸發(fā)的軟鍵盤,還是由Activity觸發(fā)的。

標(biāo)簽: