每次单击按钮时如何动态删除edittext
How to delete edittext dynamically everytime I click a button
我正在尝试添加一种带有一些附加物的新食物,基本上每次按下添加字段按钮时,它都会创建两个编辑文本,即附加物的名称和价格,会有这样一种情况,即用户想要删除 edittext 名称和价格。我已经成功地创建了两个 edittexts 也用我给它们的整数 ID 设置它们。但是每当我单击删除字段按钮时,我都会遇到用按钮删除两个编辑文本的问题。
// Add On
addOnLayout.removeAllViews();
addFields.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AddOnCounters++;
etFoodName = new EditText(addfoodAddOn.this);
etFoodName.setId(ETFoodID);
etFoodName.setHint("Enter your AddOn Name");
etPrice = new EditText(addfoodAddOn.this);
etPrice.setId(ETPriceID);
etPrice.setHint("Enter your AddOn Price");
Log.d("-------","-------------------what is edittext name id " + ETFoodID);
Log.d("-------","-------------------what is edittext price id " + ETPriceID);
ETFoodID++;
ETPriceID++;
addOnLayout.addView(etFoodName);
addOnLayout.addView(etPrice);
}
});
removeFields.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(AddOnCounters>=1 && ETFoodID > 0 && ETPriceID > 10){
addOnLayout.removeViewAt(ETFoodID);
addOnLayout.removeViewAt(ETPriceID);
ETFoodID--;
ETPriceID--;
}
}
});
我希望结果是每当我单击删除字段按钮时,它都会删除最底部的最后两个编辑文本,即名称和价格。
单击按钮后,只需执行以下操作:
addFields.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
etPrice.setText("")
etFoodName.setText("");
}
}
替换你的监听器
removeFields.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(AddOnCounters>=1 && ETFoodID > 0 && ETPriceID > 10){
View v1 = addOnLayout.findViewById(ETFoodID);
View v2 = addOnLayout.findViewById(ETPriceID);
addOnLayout.removeView(v1);
addOnLayout.removeView(v2);
ETFoodID--;
ETPriceID--;
}
}
});
将其从其父项中删除。
removeFields.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
removeFromParent(etFoodName);
removeFromParent(etPrice);
}
});
static void removeFromParent(View view) {
((ViewGroup)view.getParent()).removeView(view);
}
我正在尝试添加一种带有一些附加物的新食物,基本上每次按下添加字段按钮时,它都会创建两个编辑文本,即附加物的名称和价格,会有这样一种情况,即用户想要删除 edittext 名称和价格。我已经成功地创建了两个 edittexts 也用我给它们的整数 ID 设置它们。但是每当我单击删除字段按钮时,我都会遇到用按钮删除两个编辑文本的问题。
// Add On
addOnLayout.removeAllViews();
addFields.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AddOnCounters++;
etFoodName = new EditText(addfoodAddOn.this);
etFoodName.setId(ETFoodID);
etFoodName.setHint("Enter your AddOn Name");
etPrice = new EditText(addfoodAddOn.this);
etPrice.setId(ETPriceID);
etPrice.setHint("Enter your AddOn Price");
Log.d("-------","-------------------what is edittext name id " + ETFoodID);
Log.d("-------","-------------------what is edittext price id " + ETPriceID);
ETFoodID++;
ETPriceID++;
addOnLayout.addView(etFoodName);
addOnLayout.addView(etPrice);
}
});
removeFields.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(AddOnCounters>=1 && ETFoodID > 0 && ETPriceID > 10){
addOnLayout.removeViewAt(ETFoodID);
addOnLayout.removeViewAt(ETPriceID);
ETFoodID--;
ETPriceID--;
}
}
});
我希望结果是每当我单击删除字段按钮时,它都会删除最底部的最后两个编辑文本,即名称和价格。
单击按钮后,只需执行以下操作:
addFields.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
etPrice.setText("")
etFoodName.setText("");
}
}
替换你的监听器
removeFields.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(AddOnCounters>=1 && ETFoodID > 0 && ETPriceID > 10){
View v1 = addOnLayout.findViewById(ETFoodID);
View v2 = addOnLayout.findViewById(ETPriceID);
addOnLayout.removeView(v1);
addOnLayout.removeView(v2);
ETFoodID--;
ETPriceID--;
}
}
});
将其从其父项中删除。
removeFields.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
removeFromParent(etFoodName);
removeFromParent(etPrice);
}
});
static void removeFromParent(View view) {
((ViewGroup)view.getParent()).removeView(view);
}