我已经问过问题(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 :(得分: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。 / p>