2013-04-29 37 views
0

我有一個EditText,我想如果選擇點擊一切以兩種方式的Android刪除選擇的EditText後長按

  • 使用,用戶可以改變 輸入。
  • 當長按一下文字顏色變化,其餘 沒有發生用戶。

我試圖清除它的焦點,但每次我放開後,長時間點擊一切都被選中。可能是因爲XML文件中的android:selectAllOnFocus="true"。但我確實希望在用戶剛接觸ET時選擇所有選項,但不要在長時間按下之後選擇。

,我已經這麼遠的代碼是:

main.java

ET = (EditText) findViewById(R.id.someET); 
ET.setRawInputType(Configuration.KEYBOARD_12KEY); 
ET.setOnEditorActionListener(new DoneOnEditorActionListener()); 
ET.setOnLongClickListener(new myLongClickListener()); 

class DoneOnEditorActionListener implements OnEditorActionListener { 
@Override 
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
    if (actionId == EditorInfo.IME_ACTION_DONE) { 
     v.clearFocus(); 
     InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 
     return true; 
    } 
    return false; 
} 
} 

class MyLongClickListener implements OnLongClickListener{ 

private boolean locked = false; 

@Override 
public boolean onLongClick(View view) { 
    if(locked){ 
     ((EditText)view).setTextColor(0xFF000000); 
    } else { 
     ((EditText)view).setTextColor(0xFFFF0000); 
    } 
    locked =! locked; 
    return true; 
} 

}

的DoneOnEditorActionListener是存在的,當用戶按下輸入/完成按鈕的ET會失去焦點,鍵盤將隱藏。

回答

0

我不知道。但我知道,如何隱藏有和沒有空的空間:

ED.setVisibility(8) - 這是「刪除」(但不能添加此ED到其他視圖)
ED.setVisibility(4) - 這是隱藏的(你有空的空間)
ED.setVisibility(0) - 默認,這是顯示視圖

1

是的,可能是由android:selectAllOnFocus="true"造成的。你可以嘗試去掉這個並實現onClick方法,你應該選擇所有文本並顯示鍵盤。否則,您應該嘗試從編輯文本中清除焦點(使用clearFocus()),並將其提供給另一個視圖(使用requestFocus())。

2

而是在XML文件中設置android:selectAllOnFocus="true"的,你可能會更好控制選擇程序,根據需要(在任何你想要的聽衆):

myEditText.selectAll(); 

要刪除的選擇:

Selection.removeSelection(myEditText.getText());