我正在创建一个应用程序,它将网站地址作为Edittext中用户的输入。我在XML文件的Edittext中设置http://
。
但问题是我想在Edittext中只有http://
时禁用退格。我尝试了这个,但它没有用,
etLink.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (charSequence.equals("http://")){
etLink.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
if (i == KeyEvent.KEYCODE_DEL){
return true;
}
return false;
}
});
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
编辑
我可以使用TextView
或ImageView
解决此问题,但有可能使用addTextChangedListener
完成此操作吗?
答案 0 :(得分:0)
解决方法可能只是在ImageView
上放置http://
EditText
并向EditText
添加填充,以便文字从ImageView
开始。您可以根据需要在java中附加http://
。
但对于TextWathcer
方法,你可以这样做 -
etLink.setText("http://");
String after="";
etLink.setSelection(7);
etLink.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
after=s.toString();
if(after.length()<7) {
etLink.setText("http://");
etLink.setSelection(7);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});