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監聽回車鍵并處理兩次回調問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創新互聯行業資訊頻道了解更多相關知識。
文章題目:Android中怎么利用EditText監聽回車鍵并處理兩次回調-創新互聯
文章轉載:http://vcdvsql.cn/article4/dgocoe.html
成都網站建設公司_創新互聯,為您提供動態網站、網站設計、網站維護、手機網站建設、用戶體驗、建站公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯