在List中添加EditText值时遇到困难

时间:2014-12-02 07:28:27

标签: android

我的应用程序中有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.但它显示的是基于更改每个字母的长度。我怎么处理这个?请帮我。提前谢谢。

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很难做到这一点。请尝试以下方法:

  • 为您的EditTexts提供增量ID(例如et_1,et_2等)
  • 在SUBMIT点击事件中,添加以下代码:

    for(int i = 1; i <= 10; i++) {
      EditText txt = findViewById(getResources().getIdentifier("et_" + i,"id",getActivity().getPackageName()))
    
      nameList.add(txt.getText().toString());
    }
    

然后您可以遍历列表