我的应用程序中有10个EditText字段。我想在提交后添加列表中的值。
我在代码中使用了addTextChngedListener。
name.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
nameValue = s.toString();
nameList.add(nameValue);
}
});
但是,如果我给出这样的值意味着它就像j,jo,joh,john一样添加。
john
michel
nishan
clorem
提交后,我想迭代这些所有值。
实际上我希望看到长度为4.但它显示的是基于更改每个字母的长度。我怎么处理这个?请帮我。提前谢谢。
答案 0 :(得分:0)
你可以使用这种技术。
ArrayList<EditText> eList;
someButton.setOnClickListener (new OnClickListener () {
@Override
public void onClick (View v) {
eList = new ArrayList<EditText> ();
eList.add(Edittext1);
for (int i = 0; i <= eList.size (); i++) {
EditText field = eList.get (i);
if (field.getText ().toString ().length () == 4) {
// Do something...
}
}
}
});
P.S。你可以点击按钮来执行此操作。
答案 1 :(得分:0)
在添加新字符串之前,您需要删除以前添加的不完整字符串。
在beforeTextChanged()函数中使用以下代码: -
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
nameValue = s.toString();
nameList.remove(nameValue);
}
答案 2 :(得分:0)
无需使用addTextChangedListener
。您可以使用OnClick按钮
submitButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String value =editText.getText().toString();
if(value.length == 4 ){
// Do your stuff here
}
}
});
希望它有助于ツ
答案 3 :(得分:0)
使用TextWatcher
很难做到这一点。请尝试以下方法:
在SUBMIT点击事件中,添加以下代码:
for(int i = 1; i <= 10; i++) {
EditText txt = findViewById(getResources().getIdentifier("et_" + i,"id",getActivity().getPackageName()))
nameList.add(txt.getText().toString());
}
然后您可以遍历列表