1

動的な EditText を生成するコードを作成しました。Androidの連絡先のように、特定のEditTextを削除したいと思います。この機能を実現するにはどうすればよいですか? imgaddress を示す私のコードの下には、ビューを追加しているクリック時のボタンがあります。

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

4 に答える 4

2

私は通常使用editText.setVisibility(EditText.GONE); し、

editText = null;ガベージコレクションする必要があります。

于 2013-04-25T06:39:53.713 に答える
0

imageview と Exittext は同じ _intID を持っているためです。そのため、imageView に onclickListener を設定します。

imageView をクリックすると、その ID が検索され、同じ ID を持つ ExitText が検索されます (このために、追加された ExitText の配列を維持する必要があります)。

キャンセル 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);                
        }
    });
于 2013-04-25T07:11:40.447 に答える
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;
}

これがあなたを助けることを願っています。

于 2013-04-25T10:43:59.983 に答える