我怎么知道,EditText用户添加了多少?

时间:2014-01-24 04:17:15

标签: java android

我给EditText和setId(i++) |充气static int i = 0;

这是代码:

 buttonAdd.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View arg0) {




            LayoutInflater layoutInflater =
                    (LayoutInflater) getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            final View addOne = layoutInflater.inflate(R.layout.row, null);
            final EditText textOut = (EditText)addOne.findViewById(R.id.textout);
            Button buttonRemove = (Button)addOne.findViewById(R.id.remove);
            buttonRemove.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    ((LinearLayout) addOne.getParent()).removeView(addOne);


                }
            });

            container.addView(addOne);
                textOut.setId(i++);  }});

所以,如果我添加一个EditText,则ID为0,如果我添加另一个EditText,则ID为1 ..等等

所以,用户可以选择他想要的EditText数量,对吗?

如果用户添加3 EditText,例如

我的代码怎么知道?

例如,如果我想要对EditText的所有值求和,并且用户添加3 EditTixt

我会这样做

( EditText one = (EditText)findViewById(0) ) + ( EditText dodo  =  (EditText)findViewById(1) ) + ( EditText dodo = (EditText)findViewById(2) )

但是,如果我不知道用户会添加多少EditTixt! 我该怎么办?

谢谢。

2 个答案:

答案 0 :(得分:0)

int count = 0;
int childcount = container.getChildCount();
for (int i=0; i < childcount; i++){
      View v = container.getChildAt(i);
      if(view.getTag.equals("edittext"){
       count ++;
     }

}

并在代码中更改此行

final View addOne = layoutInflater.inflate(R.layout.row, null);
  addOne.setTag("edittext");

count返回用户添加的总edittext

答案 1 :(得分:0)

看一下这段代码,它会在你的布局容器中为你编辑文本

首先你需要像这样改变你的代码,它对我很好:

 final ViewGroup addOne = (ViewGroup) layoutInflater.inflate(R.layout.test, null);

int count = 0 ; 
    for (int i = 0; i < addOne .getChildCount(); i++) {

        if(addOne .getChildAt(i).getClass().getSimpleName().equals("EditText"))
            count ++ ;
    }