我给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! 我该怎么办?
谢谢。答案 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 ++ ;
}