删除动态创建的EditTexts

时间:2013-04-25 06:37:41

标签: android android-edittext

我编写了代码来生成动态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;
    }

4 个答案:

答案 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;
}

希望这会对你有所帮助。