我的代码是:这些采取自定义3 edittext比如何将adddtextChanged侦听器添加到特定的编辑文本。 如果删除剩余的两个并且如果是空白的第三个
,则最后的edittext会创建for(int i=0;i<3;i++)
{
LinearLayout.LayoutParams lparams=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
TextInputLayout input ;
input = new TextInputLayout(this);
input.setLayoutParams(lparams);
et = new EditText(this);
et .setLayoutParams(lparams);
et .setHint(item.getLabel());
et .setMinLines(1);
input.addView(et);
rl_MainLayout1.addView(input);
et.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void afterTextChanged(Editable editable) {
if ( et.getText().toString().trim().isEmpty()) {
input.setError(getString(R.string.msg_errorName));
requestFocus(et);
} else {
input.setErrorEnabled(false);
}
}
});
}
答案 0 :(得分:0)
添加TextChangedListener
以编辑for循环中的文字。
将名为current
的全局变量声明为
int current = 0;
并点击EditText
for(int i=0;i<3;i++) {
final int val = i;
..
..
et.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
current = val;
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
});
}
并随时随地读取此当前值。
答案 1 :(得分:0)
/ 我通过标志变量 /
解决了这个问题/ 首先声明 /
int flag = 1;
/ on循环标志++; /
if(flag==1)
{
et1=new EditText(this);
}
else if(flag==2)
{
et2=new EditText(this);
}
flag++;