我编写了代码来生成动态EditText。现在我想从中删除相关的EditText,就像Android中的联系人一样。如何实现此功能?在我的代码下面显示imgaddress是点击按钮我正在添加视图即editText和imageview取消现在点击取消我想删除editText。
imgaddess.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
linearlay.addView(linearlayout(_intMyLineCount));
_intMyLineCount++;
Log.i("Test","Increment => "+_intMyLineCount);
}
});
private LinearLayout linearlayout(int _intID)
{
LinearLayout LLMain=new LinearLayout(this);
LLMain.setId(_intID);
LLMain.addView(editText(_intID));
LLMain.addView(imageview(_intID));
LLMain.setOrientation(LinearLayout.HORIZONTAL);
linearlayoutList.add(LLMain);
return LLMain;
}
private EditText editText1(int _intID) {
EditText editText = new EditText(this);
editText.setId(_intID);
editText.setHint("Phone No");
editText.setSingleLine();
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
editText.setPadding(10, 0, 0, 0);
editTextList1.add(editText);
return editText;
}
private ImageView imageview(int _intID) {
ImageView imgview=new ImageView(this);
imgview.setId(_intID);
imgview.setImageResource(R.drawable.cancel_4);
imageViewList.add(imgview);
return imgview;
}
答案 0 :(得分:2)
我通常使用editText.setVisibility(EditText.GONE);
和
editText = null;
应该将垃圾收集起来。
答案 1 :(得分:0)
您可以从其父
中删除EditText((ViewGroup) editTextToBeDeleted.getParent()).removeView(editTextToBeDeleted);
答案 2 :(得分:0)
因为imageview和Exittext具有相同的_intID。所以在imageView上设置onclickListener。
当点击imageView时,找到它的ID,然后找到具有相同ID的ExitText。(为此你将保留一个ExitTexts数组)
一旦我们有了取消imageView对应的EditText,我们就可以执行exitText.setVisibility(EditText.GONE);
这是伪代码。
imageview.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Iterate on ExitText array and check if(exitText.getID() == v.getID())
//Now we have exitText with same ID as of imageView. So remove it.
exitText.setVisibility(EditText.GONE);
}
});
答案 3 :(得分:0)
您可以像这样删除editText。
imgaddess.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
LinearLayout LLMain = (LinearLayout)linearlayoutList.get((Integer)v.getTag());
EditText editText = (EditText)LLMain.getChildAt(0);
//Now hide it
editText.setVisibility(View.GONE);
}
});
private ImageView imageview(int _intID) {
ImageView imgview=new ImageView(this);
imgview.setId(_intID);
//Adding Tag in order to get postion.
imgview.setTag(_intID);
imgview.setImageResource(R.drawable.cancel_4);
imageViewList.add(imgview);
return imgview;
}
希望这会对你有所帮助。