第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

在沒有編輯文本的情況下捕獲軟鍵盤上完成的操作?

在沒有編輯文本的情況下捕獲軟鍵盤上完成的操作?

楊魅力 2023-01-05 10:09:19
在我的應(yīng)用程序中,我有一個(gè)顯示一些內(nèi)容的網(wǎng)絡(luò)視圖。其中一個(gè)屏幕有一個(gè)要填寫的文本框。我想在用戶按下鍵盤上的完成按鈕時(shí)捕獲,但也沒有編輯文本來添加偵聽器。無論設(shè)備和鍵盤如何,我如何捕捉動作?@Override     public boolean onKeyDown(int keyCode, KeyEvent event) {        switch (keyCode) {            case KeyEvent.KEYCODE_ENTER:                // code here                break;            default:                return super.onKeyUp(keyCode, event);        }        return true;    }我的班級重寫了 KeyEvent.Callback 但從未調(diào)用過上面的 onKeyDown 函數(shù)。
查看完整描述

2 回答

?
慕哥6287543

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊

創(chuàng)建自定義 webview,覆蓋 onCreateInputConnection 以設(shè)置輸入時(shí)間選項(xiàng)和鍵盤輸入類型,覆蓋 dispatchKeyEvent 以獲取關(guān)鍵事件將其過濾掉


例子 :


class MyWeb@JvmOverloads constructor(

context: Context,

attrs: AttributeSet? = null,

defStyleAttr: Int = 0) : WebView(context, attrs, defStyleAttr) {


override fun onCreateInputConnection(outAttrs: EditorInfo): InputConnection {

    val inputConnection = BaseInputConnection(this, false)

    return inputConnection

}


override fun dispatchKeyEvent(event: KeyEvent): Boolean {

    super.dispatchKeyEvent(event)

    val dispatchFirst = super.dispatchKeyEvent(event)

    if (event.action == KeyEvent.ACTION_UP) {

        when (event.keyCode) {

            KeyEvent.KEYCODE_ENTER -> {

                Toast.makeText(context,"Hii",Toast.LENGTH_LONG).show()

                //callback?.onEnter()

            }

        }

    }

    return dispatchFirst

}

}


和XML


<com.example.MyWeb

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:focusable="true"

        android:focusableInTouchMode="true"

        android:id="@+id/web"

/>`

資料來源:https ://medium.com/@elye.project/managing-keyboard-on-webview-d2e89109d106


查看完整回答
反對 回復(fù) 2023-01-05
?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊

按鍵事件幾乎從不從軟鍵盤發(fā)送,它們使用更直接的方法。

Android 鍵盤的工作方式是綁定到視圖。該視圖必須實(shí)現(xiàn) getInputConnection() 返回一個(gè)對象,該對象將允許鍵盤應(yīng)用程序調(diào)用(通過 AIDL)函數(shù)。這些功能之一稱為“操作鍵”(完成按鈕)。在默認(rèn)的 InputConnection 實(shí)現(xiàn)中,這將調(diào)用注冊到綁定視圖的偵聽器。

由于您在這里處理網(wǎng)絡(luò)視圖 - 我認(rèn)為沒有辦法直接捕獲它。您可以嘗試將 WebView 子類化為 ActionKeyWebView。添加一個(gè)函數(shù)來注冊一個(gè)動作鍵監(jiān)聽器接口。覆蓋 getInputConnection 以返回您自己的 InputConnectionWrapper 子類,并包裝 super.getInputConnection()。然后覆蓋 performEditorAction 以調(diào)用為 webview 注冊的任何偵聽器。它有相當(dāng)多的代碼,但它應(yīng)該可以工作。


查看完整回答
反對 回復(fù) 2023-01-05
  • 2 回答
  • 0 關(guān)注
  • 131 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號