我需要知道如何在不按下按钮的情况下从编辑文本字段获取值。我需要在用户在第一个文本字段中输入值或编辑文本时立即更改另一个文本字段的内容具体..是否有任何方法.. ??
答案 0 :(得分:4)
当您更改或添加一个文本时,可以使用TextWatcher来调用此侦听器,以便在每个输入的文本中获取事件,并且可以更改另一个文本或按钮的值。
et1.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) {
// TODO Auto-generated method stub
}
});
答案 1 :(得分:0)
Java是面向对象的语言,您需要记住您所引用的事件。 如果是按钮(你不想要的话),按下按钮时你正在做某事。
那么你在寻找的是与你正在编辑的EditText相关的事件。
anddevmanu所写的是EditText的事件。 所以,如果你有
//creating Edit text;
EditText youEditText;
//connecting to the xml layout
youEditText = (EditText)findViewById(R.id.yourEditTestID);
yourEditText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// Perform your action when the text is changed
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// Perform your action after the text is changed
}
})
答案 2 :(得分:0)
试试此代码
EditText e=new EditText(getApplicationContext());
e.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
//your code.......
}
@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
}
});