當前位置:首頁 » 安卓系統 » android監聽輸入法

android監聽輸入法

發布時間: 2022-08-02 03:00:16

㈠ android怎麼監聽輸入法的換行按鈕

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
return false;
}
});

㈡ 如何在android 中service後台監聽按鍵,比如監聽音量鍵

為了實現鍵盤的監控,從新開發一個輸入法是不現實的,一般的操作就是在系統的輸入法機制中添加介面回調。我們知道,再應用程序中拿到按鍵的回調一般是監聽onKeyDown的介面,如下所示:publicbooleanonKeyDown(intkeyCode,KeyEventevent)開發者就可以根據回調方法中的參數,keyCode與KeyEvent來判斷具體事件。但是,由於事件的回調機制在其的沙箱中運行,在其他應用中是無法拿到當前應用事件回調的。那麼我們就從上到下,具體的看看事件的傳遞機制。如下圖所示,用戶點擊後,軟鍵盤或物理按鍵的輸入驅動就會產生一個中斷,且向/dev/input/event*中寫入一個相應的信號量。Android操作系統則會循環的讀取其中的事件,再分發給WindowManagerServer。由WindowManagerServer根據事件的來源分發到各個不同的ViewGroup與View中,從而產生不同的OnClick、OnKeyDown和OnTouch等事件。這個時候很自然的想到,黑客們希望做鍵盤監控,一定會向Linux底層增加自定義的事件。這里我們使用的是Linux中的getevent獲得/dev/input/eventX設備匯報的事件,這個命令還會輸出所有event設備的基本信息。包括觸屏、按鍵、耳機插入等等。其基本用法如下:Usage:getevent[-t][-n][-sswitchmask][-S][-v[mask]][-d][-p][-i][-l][-q][-ccount][-r][device]-t:showtimestamps-n:don'tprintnewlines-s:printswitchstatesforgivenbits-S:printallswitchstates-v:verbositymask(errs=1,dev=2,name=4,info=8,vers=16,pos.events=32,props=64)-d:showHIDdescriptor,ifavailable-p:showpossibleevents(errs,dev,name,pos.events)-i:-l:-q:quiet(clearverbositymask)-c:-r:printrateeventsarereceived鍵入getevent後,我們能夠看到設備中的一些列輸入硬體驅動信息,同樣下面會出現很多輸入指令信號,通常情況下,這些信號量都在刷屏,如下圖所示:這些信號量的表示我們無法直接看懂,輸入getevent–l加入Label我們能夠看到一些添加的標簽,如下所示:其實這些Lable已經在其input.h頭文件中定義好,其中type的定義如下:/**Eventtypes*/#defineEV_SYN0x00#defineEV_KEY0x01#defineEV_REL0x02#defineEV_ABS0x03#defineEV_MSC0x04#defineEV_SW0x05#defineEV_LED0x11#defineEV_SND0x12#defineEV_REP0x14#defineEV_FF0x15#defineEV_PWR0x16#defineEV_FF_STATUS0x17#defineEV_MAX0x1f#defineEV_CNT(EV_MAX+1)一般來說,常用的是EV_KEY、EV_REL、EV_ABS、EV_SYN,分別對應鍵盤按鍵、相對坐標、絕對坐標、同步事件。EV_SYN則表示一組完整事件已經完成,需要處理,EV_SYN的code定義事件分發的類型。

㈢ Android開發中怎麼在後台服務中監聽訊飛輸入法的莫得鍵盤的顯示和隱藏

摘要 根據切換輸入法,會在通知欄顯示通知實現。優點就是簡單高效,缺點就是手機必須安裝兩個以上輸入法。

㈣ android如何監聽軟鍵盤輸入法的刪除鍵

參考下面代碼:
editText.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL
&& event.getAction() == KeyEvent.ACTION_DOWN) {
事件
return true;
}
return false;
}
});

㈤ android 中使用setOnKeyListener無法監聽按鍵

如果你用的是android的模擬器的話,有可能有一個問題是:你在調試程序的時候的輸入法是android輸入法,由模擬器上的小鍵盤輸入才會監聽,我遇到這問題,呵呵 如果你已經這樣做了,那……有的時候不一定是代碼問題。

㈥ android 怎樣監聽軟鍵盤關閉

我們在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;
});

㈦ 求教Android 按鍵監聽和按鍵模擬問題

1.看下輸入法的結構機制吧,apidemo中有流程,應該是可以的
2.模擬按鍵當然可以,發送一個keycode就可以了

java">
InputConnectionic=getCurrentInputConnection();
if(null!=ic){
//code種類有很多
ic.sendKeyEvent(
newKeyEvent(KeyEvent.ACTION_DOWN,keyEventCode));
ic.sendKeyEvent(
newKeyEvent(KeyEvent.ACTION_UP,keyEventCode));
}

㈧ java怎麼判斷Android輸入法有沒有在輸入狀態

是想看用戶有沒有正在輸入,還是看用戶有沒有輸入完畢
要是正在輸入的監聽,
監聽軟鍵盤有沒有跳出來了吧。
不要監聽游標位置,這里很多坑。我是沒技術就乖乖的監聽軟鍵盤。
監聽有沒有輸入完畢就自己在edittext里加listener吧。

㈨ Android如何監聽輸入法彈出和關閉事件

在輸入法彈出的時候,後面的內容不會縮放;而評論輸入框剛好顯示在輸入法面板上(above)。
這里不僅需要監聽到輸入法的彈出和關閉,還要獲取到輸入法的高度。
如果發現輸入法沒有彈出了,那麼onMeasure就直接用傳進來的參數調用。
如果發現輸入法彈出了,那麼更改參數,保證View沒有縮小。

㈩ android怎麼監聽輸入字

使用EditText的addTextChangedListener(TextWatcher watcher)方法對EditText實現監聽,TextWatcher是一個介面類,所以必須實現TextWatcher里的抽象方法:

當EditText裡面的內容有變化的時候,觸發TextChangedListener事件,就會調用TextWatcher裡面的抽象方法。

熱點內容
php旅遊網站系統 發布:2024-05-07 20:27:32 瀏覽:610
jdk源碼怎麼看 發布:2024-05-07 20:18:22 瀏覽:519
編程c語言自學書 發布:2024-05-07 20:12:03 瀏覽:422
usb大容量存儲驅動 發布:2024-05-07 19:02:01 瀏覽:815
紅米1s沒有存儲空間 發布:2024-05-07 18:59:09 瀏覽:505
妖雲解壓密碼 發布:2024-05-07 18:50:08 瀏覽:1002
sql語句等於怎麼寫 發布:2024-05-07 18:05:46 瀏覽:816
我的世界電腦版第三方伺服器大全 發布:2024-05-07 18:00:46 瀏覽:627
主伺服器的ip地址 發布:2024-05-07 17:58:50 瀏覽:546
組伺服器打電腦游戲 發布:2024-05-07 17:46:19 瀏覽:866