如何強制在EditText中顯示不能刪除但單擊Backspace的字母。 ex。 [#____________] 在上例中,#是該edittext字段的默認值。當使用Edittext.gettext()時,它應該返回'#32343'如何在Android的EditText中設置未更改的第一個字母
-1
A
回答
0
您可以實現一個TextChangedListener
,您可以確保文本的這些部分不會被刪除/覆蓋。
試試這個代碼
final EditText edt = (EditText) findViewById(R.id.editText1);
edt.setText("#");
Selection.setSelection(edt.getText(), edt.getText().length());
edt.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
if(!s.toString().contains("#")){
edt.setText("#");
Selection.setSelection(edt.getText(), edt.getText().length());
}
}
});
1
幾種方法立刻浮現在腦海,但我承認您的問題混淆。看起來你想(而不是顯示一個空的EditText)在開頭顯示帶有字母的EditText。如果是這樣的話,試試這個:
final EditText et = (EditText) findViewById(R.id.my_edit_text);
// default characters to display
// replace "#" with whatever you like
final String defaultTextDisplayed = "#";
// text is either set here or via xml, preferably via strings.xml
et.setText(defaultTextDisplayed);
et.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// ignored
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// ignored
}
// This is the callback we're interested in. Any time
// your user edits what is in the EditText, this method
// is called. We'll use it listen for when a user tries
// to delete the default display text.
@Override
public void afterTextChanged(Editable s) {
// if the user attempts to delete and of the default
// string displayed, just put it back
if (s.length() < defaultTextDisplayed.length()) {
et.setText(defaultTextDisplayed);
}
}
});
相關問題
- 1. 更改Android中第一個字母的字體
- 2. 如何更改字符串的第一個字母的情況?
- 3. 更改第一個字母串在JavaScript
- 4. 如何在首字母爲Android的資本中設置Edittext中的本地值?
- 5. 更改字母第一個字母的字體顏色
- 6. 如何設置僅用於在Android中輸入字母的edittext字段?
- 7. 如何在EditText中輸入數字後設置/更改EditText的背景圖像?
- 8. EditText的第一個字母大寫字母
- 9. 如何在Android的AlertDialog中設置Edittext
- 10. 如何設置第一個字母大寫字母上的按鈕點擊
- 11. 如何在Android中獲取TextView的第一個字母?
- 12. 如何在Android中的EditText中設置字符串的芯片
- 13. 如何獲取字符串中第一個字母的位置
- 14. 如何更改字母的位置在一個字的輸入字符串
- 15. 如何將一行中的第一個字母設置爲記事本++中的大寫字母
- 16. 更改javascript/jQuery文字字體大小的第一個字母
- 17. 更改每個單詞的第一個字母的值
- 18. Android如何在Edittext中設置ScrollBar?
- 19. 如何在python中只更改.mp3的一個字母?
- 20. 如何更改文本字段文本的第一個字母的顏色
- 21. Android如果點擊字段中的任何字母,將光標從一個EditText移動到另一個EditText?
- 22. 將某個單詞的第一個字母更改爲大寫字母
- 23. 自動大寫化合物名稱中的第一個字母(EditText,Android)
- 24. 如何在Android中的edittext中爲每個字符設置不同的顏色?
- 25. 當第一個字符是數字時更改爲第一個大寫字母
- 26. 第一個字母的大寫的EditText與GBoard輸入
- 27. Android的EditText中的字母間距
- 28. CoderByte JavaScript字母更改 - 第一步
- 29. 兩個時間字段,當第一個設置時更改第二個字段
- 30. Android:設置字母數字鍵盤首先在EditText中顯示數字
我會盡快發佈一個片段,但在此期間檢查一下:https://developer.android.com/reference/android/text/TextWatcher.html# beforeTextChanged(java.lang.CharSequence,int,int,int)。 – Leonardo