91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中怎么利用 EditText監聽回車鍵并處理兩次回調

發布時間:2021-06-09 17:24:56 來源:億速云 閱讀:471 作者:Leah 欄目:移動開發

Android中怎么利用 EditText監聽回車鍵并處理兩次回調?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

首先我們在xml布局中添加一個要監聽的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>

要想監聽到軟鍵盤按下什么鍵,就需要使用setOnKeyListener方法,在Activity中,我們編寫監聽代碼

@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方法中監聽回車鍵

@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: 按下回車鍵

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

兩次回調解答并解決

我們都知道,當我們按某個鍵的時候,鍵盤有按下和抬起兩個操作,所以這里兩次回調就是回車按下時,回調一次,回車鍵抬起時,回調一次。

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

@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的回車樣式,即是把EditText的ImeOptions屬性設置成不同的值,Enter鍵上就會顯示不同的文字或圖案

actionNone : 回車鍵,按下后光標到下一行
actionGo : Go,
actionSearch : 一個放大鏡
actionSend : Send
actionNext : Next
actionDone : Done,隱藏軟鍵盤,即使不是最后一個文本輸入框

關于Android中怎么利用 EditText監聽回車鍵并處理兩次回調問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

秀山| 仁化县| 旺苍县| 尤溪县| 宁南县| 阜平县| 卓尼县| 拜泉县| 南部县| 嘉定区| 灵璧县| 江安县| 丽江市| 苗栗市| 肇源县| 海南省| 建宁县| 肥东县| 措美县| 水富县| 文昌市| 郓城县| 无棣县| 临沭县| 潜江市| 衢州市| 怀安县| 个旧市| 巨野县| 金秀| 永德县| 湖州市| 涞水县| 托克逊县| 洛宁县| 波密县| 双鸭山市| 札达县| 和顺县| 广水市| 石嘴山市|