-5

我想在android中創建讀取4個字符密碼的視圖。當用戶按下退格鍵時,我想要關注prev元素。當所選視圖爲空時,是否有可能捕獲退格事件?在Android中創建密碼視圖

我也想在輸入最後一個字符後關閉/隱藏鍵盤。可能嗎?

+0

發佈你的一些代碼,讓我們看看它出錯了! – Panther 2014-10-30 13:49:12

+0

嗨豹我更新了代碼的問題。即使調用clearFocus();軟鍵盤沒有關閉,關於退格鍵,你可以讓我知道我們如何捕獲它。 – 2014-10-30 13:58:00

回答

0

我已經覆蓋安其& onFocusChange功能和使用ZeroWidthString(「\ u200B」)來捕獲軟鍵盤刪除事件。以下是代碼嗅探

@Override 
public boolean onKey(View v, int keyCode, KeyEvent event) { 
    if(event.getAction() == KeyEvent.ACTION_UP) { 
     TextView tv = (TextView) v; 
     if (keyCode == KeyEvent.KEYCODE_DEL){ 
      if (tv.getText().toString().equalsIgnoreCase(ZeroWidthString)) 
       moveToPrevField(); 
      else 
       tv.setText(ZeroWidthString); 
     } 
    } 
} 

@Override 
public void onFocusChange(View v, boolean hasFocus) { 
    TextView tv = (TextView) v; 
    if (hasFocus) { 
     tv.setText(ZeroWidthString); 
    } 
    else if (tv.getText().toString().equalsIgnoreCase(ZeroWidthString)) { 
     tv.setText(""); 
    } 
} 
0

要捕獲backspace,它實際上是android中的刪除鍵。您可以通過

editText.setOnKeyListener(new OnKeyListener() {     
    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if(keyCode == KeyEvent.KEYCODE_DEL){ 
      //delete key pressed 
      } 
    return false;  
     } 
}); 

捕捉它隱藏鍵盤試試這個

InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);