Я пытаюсь добавить новую еду с некоторыми надстройками, в основном каждый раз, когда нажимается кнопка добавления поля, она создает два текста редактирования, которые являются названием и ценой надстройки, будет сценарий, в котором пользователи хотят удалить текст редактирования название и цена. Я успешно создал два текста редактирования, также установив для них идентификаторы, которые я даю им в виде целых чисел. Но у меня проблема с удалением двух текстов редактирования с помощью кнопки всякий раз, когда я нажимаю кнопку удаления поля.
// 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);
}
@Justin в любое время, приятель ... Если это помогло, проголосуйте за ответ и отметьте его как проверенный ответ ...