EditText監(jiān)聽回車鍵并處理兩次回調(diào)問題

原創(chuàng)不易呛谜,轉(zhuǎn)載請注明出處在跳,謝謝了。

前言

我們都知道隐岛,在登面猫妙,搜索等等有EditText控件的界面上,當(dāng)用戶輸入完內(nèi)容后聚凹,點擊回車鍵執(zhí)行邏輯會有非常好的用戶體驗割坠,所以今天我們來學(xué)習(xí)如何監(jiān)聽EditText監(jiān)聽回車鍵并處理監(jiān)聽時發(fā)生了兩次回調(diào)問題。

代碼

首先我們在xml布局中添加一個要監(jiān)聽的EditText

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:id="@+id/et_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

要想監(jiān)聽到軟鍵盤按下什么鍵妒牙,就需要使用setOnKeyListener方法彼哼,在Activity中,我們編寫監(jiān)聽代碼

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        EditText et = findViewById(R.id.et_text);
        et.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                return false;
            }
        });
    }

接下來在onKey方法中監(jiān)聽回車鍵

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        EditText et = findViewById(R.id.et_text);
        et.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_ENTER){
                    Log.e("MainActivity", "onKey: 按下回車鍵");
                    return true;
                }
                return false;
            }
        });
    }

我們運行起來湘今,并在EditText中點擊回車鍵敢朱,會看到如下日志

E/MainActivity: onKey: 按下回車鍵
E/MainActivity: onKey: 按下回車鍵

為什么我們會看到兩次日志輸入呢?

兩次回調(diào)解答并解決

我們都知道象浑,當(dāng)我們按某個鍵的時候蔫饰,鍵盤有按下和抬起兩個操作,所以這里兩次回調(diào)就是回車按下時愉豺,回調(diào)一次篓吁,回車鍵抬起時,回調(diào)一次蚪拦。

要解決這個辦法非常簡單杖剪,我們只需要多加一個條件判斷冻押,是抬起還是按下即可

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        EditText et = findViewById(R.id.et_text);
        et.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP) {
                    Log.e("MainActivity", "onKey: 按下回車鍵");
                    return true;
                }
                return false;
            }
        });
    }

我們再運行看看,點擊回車后盛嘿,日志輸出

E/MainActivity: onKey: 按下回車鍵

好了洛巢,這就是EditText監(jiān)聽回車鍵并處理兩次回調(diào),如果文章幫助到你次兆,點個喜歡支持一下吧稿茉,謝謝。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芥炭,一起剝皮案震驚了整個濱河市漓库,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌园蝠,老刑警劉巖渺蒿,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異彪薛,居然都是意外死亡茂装,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門善延,熙熙樓的掌柜王于貴愁眉苦臉地迎上來少态,“玉大人,你說我怎么就攤上這事挚冤】鲈觯” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵训挡,是天一觀的道長澳骤。 經(jīng)常有香客問我,道長澜薄,這世上最難降的妖魔是什么为肮? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮肤京,結(jié)果婚禮上颊艳,老公的妹妹穿的比我還像新娘。我一直安慰自己忘分,他們只是感情好棋枕,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著妒峦,像睡著了一般重斑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肯骇,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天窥浪,我揣著相機與錄音祖很,去河邊找鬼。 笑死漾脂,一個胖子當(dāng)著我的面吹牛假颇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播骨稿,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼笨鸡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了坦冠?” 一聲冷哼從身側(cè)響起镜豹,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蓝牲,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泰讽,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡例衍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了已卸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片佛玄。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖累澡,靈堂內(nèi)的尸體忽然破棺而出梦抢,到底是詐尸還是另有隱情,我是刑警寧澤愧哟,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布奥吩,位于F島的核電站,受9級特大地震影響蕊梧,放射性物質(zhì)發(fā)生泄漏霞赫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一肥矢、第九天 我趴在偏房一處隱蔽的房頂上張望端衰。 院中可真熱鬧,春花似錦甘改、人聲如沸旅东。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抵代。三九已至,卻和暖如春疟羹,著一層夾襖步出監(jiān)牢的瞬間主守,已是汗流浹背禀倔。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留参淫,地道東北人救湖。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像涎才,于是被迫代替她去往敵國和親鞋既。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容