2013-04-25 95 views
1

我已經編寫了用於生成動態EditText的代碼。現在我想從中刪除特定的EditText,就像在Android中的聯繫人一樣。如何實現這個功能?下面我的代碼顯示imgaddress是按鈕上點擊,我添加視圖即editText和imageview現在取消clickof取消我想刪除editText。刪除動態創建的EditTexts

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

你要插入的ImageView和EDITTEXT和imgaddess點擊刪除EDITTEXT? – kamil 2013-04-25 06:58:51

+0

是完全相同的功能,我想 – user2318272 2013-04-25 07:09:00

+0

好吧,那麼你想在imgaddess點擊刪除哪個editText?您使用該圖像地址添加的editText? – kamil 2013-04-25 07:18:52

回答

2

我通常使用editText.setVisibility(EditText.GONE);

editText = null;應該有它的垃圾回收。

+0

是可以做,但我的問題是,如何獲得動態EditText – user2318272 2013-04-25 06:50:08

+0

當然,您需要將EditText控件的引用存儲在某個數組/列表列表中。你可以在你的editText方法中做到這一點。 – Sandeep 2013-04-25 06:52:37

+0

我將其存儲在ArrayList中,但我們不知道這EDITTEXT用戶想要刪除這樣thatperticular的ImageButton的的onclick如何刪除它 – user2318272 2013-04-25 06:55:36

0

您可以從其父

((ViewGroup) editTextToBeDeleted.getParent()).removeView(editTextToBeDeleted); 
0

刪除的EditText既然你imageview的並且Exittext具有相同_intID。所以在imageView上設置onclickListener。

當ImageView的點擊找到它的ID和現在發現ExitText具有相同的ID。(對於這一點,你將不得不保持添加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);     
     } 
    }); 
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; 
} 

希望這會幫助你。