2017-08-20 72 views
2

我試圖使用EditTexttextPassword輸入類型。我面臨的情況是,在Android版本5和4.4中,所有進入該字段的字符都是通過雙擊來選擇的,而此功能在Android版本6上不起作用。 您是否願意幫助我在所有Android版本中擁有此功能?帶有文本密碼輸入類型的Android EditText不會通過雙擊選擇全部字符

這是我的xml文件:

<?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" 
    android:orientation="vertical"> 


    <EditText 
     android:hint="Text Password Input Type" 
     android:inputType="textPassword" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

這是結果:

enter image description here

+0

我想這個問題是隻用模擬器而不是真正的設備 – VVB

+0

@VVB這個功能在Samsung Note 4上用Lollipop和Nexus 5與Marshmallow android版本進行了檢查。發生了同樣的結果。 – Nava

回答

0

的一般算法是:

private long timeLastClicked; 
private static final TIME_DOUBLE_CLICK_MS = 1000; 
private EditText passwordField; //should put the result of findViewById in here 

... 

myEditText.setOnClickListener(new OnClickListener() { 
    public void onClick(View view) { 
     long time = System.currentTimeMillis(); 
     if(time - timeLastClicked < TIME_DOUBLE_CLICK_MS) { 
      passwordField.setSelection(0,passwordField.getText().length()); 
     } 
     timeLastClicked = time; 
}); 

這是什麼does-它集點擊監聽器。當你看到一個點擊時,你檢查你是否已經在前一秒看到另一個點擊。如果是這樣,你高亮文本。如果沒有,你不會。無論哪種方式,您都可以節省點擊時間,以便下次進行比較。

+0

你測試過這個解決方案嗎?沒有爲我工作。看來問題涉及到setSelection()方法。因爲算法是正確的。 – Nava

相關問題