2014-12-02 126 views
0

我的应用程序中有10个EditText字段。一旦我提交,我想在列表中添加值。在列表中添加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

'addTextChangedListener'被解雇* EACH LETTER * – 2014-12-02 07:32:07

+0

在List中添加值在EditText获取输入事件。它可能会工作。 – 2014-12-02 07:32:19

+0

你为什么使用'addTextChangedListener'?您可以处理提交按钮的'onClick'并获取EditText的值 – 2014-12-02 07:33:34

回答

0

在添加新字符串之前,您需要删除以前添加的不完整字符串。

使用下面的代码beforeTextChanged()函数: -

 @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 

       nameValue = s.toString(); 
       nameList.remove(nameValue); 

     } 
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.你可以通过按钮点击来做到这一点。

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 
     } 
    } 
}); 

希望它可以帮助ツ

0

这将是很难做到这一点使用TextWatcher。请尝试以下方法:

  • 给增量的ID给您EditTexts(如et_1,et_2等)
  • 上提交的单击事件,添加以下代码:

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

然后你可以遍历列表