從軟鍵盤(pán)攔截后退按鈕我有幾個(gè)輸入字段的活動(dòng)。當(dāng)活動(dòng)開(kāi)始時(shí),顯示軟鍵盤(pán)。當(dāng)按下后退按鈕軟鍵盤(pán)關(guān)閉并關(guān)閉活動(dòng)時(shí),我需要再次按下后退按鈕。所以問(wèn)題是:是否有可能攔截后退按鈕關(guān)閉軟鍵盤(pán)并在一次按下后退按鈕完成活動(dòng)而不創(chuàng)建自定義InputMethodService?PS我知道如何在其他情況下攔截后退按鈕:onKeyDown()或者onBackPressed()在這種情況下它不起作用:只有第二次按下后退按鈕被攔截。
3 回答

不負(fù)相思意
TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
我發(fā)現(xiàn),覆蓋Layout類(lèi)的dispatchKeyEventPreIme方法也很有效。只需將主Activity設(shè)置為屬性并啟動(dòng)預(yù)定義方法即可。
public class LinearLayoutGradient extends LinearLayout { MainActivity a; public void setMainActivity(MainActivity a) { this.a = a; } @Override public boolean dispatchKeyEventPreIme(KeyEvent event) { if (a != null) { InputMethodManager imm = (InputMethodManager) a .getSystemService(Context.INPUT_METHOD_SERVICE); if (imm.isActive() && event.getKeyCode() == KeyEvent.KEYCODE_BACK) { a.launchMethod; } } return super.dispatchKeyEventPreIme(event); }}
- 3 回答
- 0 關(guān)注
- 414 瀏覽
添加回答
舉報(bào)
0/150
提交
取消