我想删除动态创建的编辑文本,但找不到该Edittext ID。基本上,我不知道...
我用这段代码创建了Edittext。
public void addEditText() {
// add edittext
etPincode = new EditText(mActivity);
allEt.add(etPincode);
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
p.setMargins(0, 5, 0, 0);
etPincode.setLayoutParams(p);
etPincode.setId(numberOfLines + 1);
etPincode.setPadding(50,50,50,50);
etPincode.setBackgroundResource(R.drawable.et_rectangular_noradius);
etPincode.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL);
int maxLength = 10;
InputFilter[] fArray = new InputFilter[1];
fArray[0] = new InputFilter.LengthFilter(maxLength);
etPincode.setFilters(fArray);
Log.v("etttId1", String.valueOf(etPincode.getId()));
Log.v("etttId2", String.valueOf(numberOfLines));
llPincode.addView(etPincode);
numberOfLines++;
}
以及用于从 edittext 检索值的代码。
strings[] = new String[allEt.size()];
for(int i=0; i < allEt.size(); i++){
strings[i] = allEt.get(i).getText().toString();
pincodeArray.add(strings[i]);
}
pincodes= String.valueOf(pincodeArray);
我想删除我的edittext,也想在edittext的右边添加一个删除图像。
答案 0 :(得分:0)
您可以使用 llPincode
将其删除如果llPincode只有一个孩子,或者您知道该职位,请使用:
llPincode.removeChildAt(position);
如果llPincode具有多个视图,则使用循环
foreach(int i=0; i< llPincode.toChildCount; i++){
if(view instance of EditText){
llPincode.removeChildAt(i)
}
}
答案 1 :(得分:0)
由于已经在addEditText()外部保存了对etPincode的引用,因此只需执行以下操作:
public void removeEdit(){
llPincode.removeView(etPincode);
}