我想在 editText 中添加常量文本,例如:
http://<here_user_can_write>
用户应该无法从“http://
”中删除任何字符,我对此进行了搜索,发现:
editText.setFilters(new InputFilter[] {
new InputFilter() {
public CharSequence filter(CharSequence src, int start,
int end, Spanned dst, int dstart, int dend) {
return src.length() < 1 ? dst.subSequence(dstart, dend) : "";
}
}
});
但我不知道它是否限制用户不能从 start 到 end 限制中删除任何字符。我也无法理解 Spanned 类的使用。
如果我们可以将 TextView
放在 EditText
中,那么一种方法将是一个不错的选择,但我认为这在 Android 中是不可能的,因为两者都是 View ,是吗可能吗?
最佳答案
你试过这个方法吗?
final EditText edt = (EditText) findViewById(R.id.editText1);
edt.setText("http://");
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().startsWith("http://")){
edt.setText("http://");
Selection.setSelection(edt.getText(), edt.getText().length());
}
}
});
关于android - 将常量文本放在应该不可编辑的 EditText 中 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14195207/