2012-10-01 39 views
0

我已經問過問題(http://stackoverflow.com/questions/12663443/add-delete-option-with-dynamically-generated-edittext)。我成功地實現了答案,但是這個代碼的問題是textEdit,spinner和remove按鈕並不是從視圖中刪除。它發生,但我不得不做三個按鈕點擊發生這..請通過我的代碼。意見不刪除

btnAddNew.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 

      LinearLayout rAlign = (LinearLayout)findViewById(R.id.lId); 
      final EditText newPass = new EditText(getApplicationContext()); 
      allEds.add(newPass); 
      newPass.setHint("Name of Label"); 
      newPass.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
      //newPass.setWidth(318); 
      newPass.setTextColor(Color.parseColor("#333333")); 
      newPass.setId(MY_BUTTON); 
      System.out.println(MY_BUTTON); 
      //newPass.setOnClickListener(this); 
      rAlign.addView(newPass); 

      addSpinner();//Code to add spinner    
      Button btnRemoveOld = new Button(getApplicationContext()); 
      btnRemoveOld.setId(MY_BUTTON); // arbitrary number 
      rAlign.addView(btnRemoveOld); 
      btnRemoveOld.setOnClickListener(new OnClickListener() { 
       public void onClick(View v) { 
        int idf =MY_BUTTON -1; 
        LinearLayout rAlign = (LinearLayout)findViewById(R.id.lId); 
        rAlign.removeView(findViewById(idf)); 
        allEds.remove(newPass); 

       } 
      }); 
      MY_BUTTON ++; 
     } 
    }); 
+0

你可以指定更多一點的問題?你想從屏幕上完全刪除newPass嗎? – zabawaba99

+0

我想從屏幕上刪除testEdit,微調框和刪除按鈕,同時點擊添加按鈕 – user1708870

回答

0

如果使用MY_BUTTON分配一個ID爲每個視圖

newPass.setId(MY_BUTTON); 
MY_BUTTON++; 
spinner.setId(MY_BUTTON); 
MY_BUTTON++; 
btnRemoveOld.setId(MY_BUTTON); 
MY_BUTTON++; 

你能做到這一點的btnRemoveOld的onClickListner刪除所有三個對象

btnRemoveOld.setOnClickListener(new OnClickListener() { 
       public void onClick(View v) { 
        //gets the ID of the btnRemoveOld; 
        int idf =v.getId(); 
        LinearLayout rAlign = (LinearLayout)findViewById(R.id.lId); 
        //will return the newPass button 
        rAlign.removeView(findViewById(idf-2)); 
        //will return the spinner 
        rAlign.removeView(findViewById(idf-1)); 
        //will remove the btnRemoveOld 
        rAlign.removeView(v); 
        } 
      }); 

這樣做v.getId (),你會得到btnRemoveOld的id值,並且你已經向代碼保證了微調器是id-1,而newPass按鈕是id-2。

+0

正在動態創建這些(textEdit,微調框和按鈕).. – user1708870

+0

看看修訂後的答案,並讓我知道這是否有幫助。 – zabawaba99

+0

嘿,謝謝它的工作:) – user1708870