9

我在我的應用程序有一個登錄頁面裏有元素列舉:Android的 - 捕獲「完成」和「Enter」軟鍵盤上的按鍵事件

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

在按下Login,它會降落到主屏幕。當用戶在Samsung Galaxy S3軟鍵盤上的密碼輸入完成時點擊Done時,意圖是執行相同的動作;和Enter軟鍵鍵HTC One X

所以,這裏是密碼字段的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,但它沒有解決。

回答

3

我在reply by Asha找到了這個解決方案,這似乎適用於三星Galaxy S3,S3 Mini,S2,谷歌Nexus Tab和希望三星的所有設備。對於宏達電,它到目前爲止,我已經檢查了HTC Desire X。對於HTC One X,這不起作用。有這個actionid,其值爲5,其中捕獲軟鍵盤的關鍵操作enter

2

宏達電由於某種原因不支持imeOptions,一般不是所有的鍵盤都支持它。請參閱here。我的建議是爲下一個/完成/等製作自己的UI按鈕。功能。