在我的应用中,我必须禁用EditText
并以编程方式更改EditText
中的文字,问题是我希望EditText
收听我在EditText
上添加的TextWatcher。< / p>
但EditText
不是监听观察者。
所以任何人都可以帮助启用EditText
在TextWatcher
禁用时监听EditText
,并以编程方式填充KeyBoard
,而不是txtShift.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
if (s.length()>0) {
keyPadOnOff(false);
}else {
keyPadOnOff(true);
}
}
});
。
我尝试了以下代码
var postApiUrl = '/api/WallPost/', commentApiUrl = '/api/Comment/';
谢谢
答案 0 :(得分:0)
检查以下内容
在方法上设置Log.v - afterTextChanged(可编辑的s)并首先检查它。
public void afterTextChanged(Editable s){
Log.v(TAG,&#34; AfterTextChanged工作&#34;);
}
如果第3点正确获取Log值。 错误在方法keyPadOnOff(boolean)
5.检查方法keyPadOnOff(boolean)。
答案 1 :(得分:0)
EditText
听取观察者的意见
et.setFocusable(false);
et.setClickable(false);
所以我做了什么,当我从我的代码中填充EditText
中的文本时触发事件。
答案 2 :(得分:0)
您可以使用以下行启用TextWatcher:
txtShift.removeTextChangedListener(textWatcher);
你可以从:
开始txtShift.addTextChangedListener(textWatcher);
TextWatcher textWatcher = 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.length()>0) {
keyPadOnOff(false);
}else {
keyPadOnOff(true);
}
}
};