在我的应用程序中,我在未选中CheckBox时动态创建EditText,并且我想获取用户在其中写入的文本。问题是我不知道在哪里写getText()。toString()。我调试了这个,我看到当创建EditText时,getText()。toString()立即执行并始终返回"" 。我也在EditText中尝试了focusChange但没有任何成功。任何帮助表示赞赏!
final EditText editText = new EditText(this);
TableRow.LayoutParams params = new TableRow.LayoutParams(getPx(100) , ViewGroup.LayoutParams.WRAP_CONTENT);
params.setMargins(0 ,0 ,getPx(100) ,0);
tr.addView(editText);
date = editText.getText().toString();
答案 0 :(得分:0)
你试过这个:
editText.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) {
if(isValidDate()) {
date = s.toString();
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
...
private boolean isValidDate() {
// implement your logic here
}
答案 1 :(得分:0)
因此,您不希望在用户输入时使用文本。
editText.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) {
}
@Override
public void afterTextChanged(Editable s) {
String typedStringIs=s.toString();
//Here your code . It is dynamaclly changing . if anything you write will be here
}
});