无需按钮即可从 EditText 获取文本
Getting text from EditText without a button
在我的应用程序中,我在未选中 CheckBox 时动态创建一个 EditText,并且我想获取用户在其中写入的文本。问题是我不知道在哪里写 getText().toString()。我已经对此进行了调试,我看到当创建 EditText 时, getText().toString() 会立即执行并且 returns 总是 "" 。我也尝试过 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();
你试过这个吗:
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
}
所以你不想在用户输入时获取文本。
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
}
});
在我的应用程序中,我在未选中 CheckBox 时动态创建一个 EditText,并且我想获取用户在其中写入的文本。问题是我不知道在哪里写 getText().toString()。我已经对此进行了调试,我看到当创建 EditText 时, getText().toString() 会立即执行并且 returns 总是 "" 。我也尝试过 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();
你试过这个吗:
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
}
所以你不想在用户输入时获取文本。
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
}
});