簡體   English   中英

Android - 在軟鍵盤上捕獲“完成”和“輸入”鍵事件

[英]Android - Capture “Done” and “Enter” key events on soft keyboard

我的應用程序中有一個登錄頁面,其中列出了以下元素:

  • 用戶名(EditText)
  • 密碼(EditText)
  • 登錄(按鈕)

按下Login ,它將進入主屏幕。 當用戶在完成Samsung Galaxy S3上的軟鍵盤上的密碼鍵入時Done相同的操作時,目的是執行相同的操作; 並在HTC One XEnter軟鍵盤的鍵。

那么,密碼字段的EditText如何是:

<EditText
    android:id="@+id/password_txt"
    android:layout_width="200dip"
    android:layout_height="wrap_content"
    android:imeOptions="flagNoExtractUi"
    android:inputType="textPassword"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="8dp"
    android:singleLine="true" />

在活動中,無論我嘗試了什么,都在這里:

EditText mPassword = (EditText) findViewById(R.id.password_txt);
mPassword.setOnEditorActionListener(new TextView.OnEditorActionListener() {

                @Override
                public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                    if(event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER || actionId == EditorInfo.IME_ACTION_DONE){
                        Log.e("MyApp", " ------> IN EDITOR ACTION DONE");
                    }
                    return false;
                }
            });

我確實嘗試將密碼字段的imeOptions保持為actionDone以及flagNoExtractUi但它沒有成功。

我找到了Asha的回復解決方案,這似乎適用於三星Galaxy S3,S3迷你,S2,谷歌Nexus Tab以及希望三星的所有設備。 對於HTC,它已經在HTC Desire X上工作到目前為止我已經檢查過了。 對於HTC One X,這不起作用。 這個actionid的值為5 ,它捕獲軟鍵盤的enter鍵動作。

HTC出於某種原因不支持imeOptions,一般情況下並非所有鍵盤都支持它。 這里查看更多。 我的建議是為next / done / etc制作你自己的UI按鈕。 功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM