Как динамически удалять текст редактирования каждый раз, когда я нажимаю кнопку

Я пытаюсь добавить новую еду с некоторыми надстройками, в основном каждый раз, когда нажимается кнопка добавления поля, она создает два текста редактирования, которые являются названием и ценой надстройки, будет сценарий, в котором пользователи хотят удалить текст редактирования название и цена. Я успешно создал два текста редактирования, также установив для них идентификаторы, которые я даю им в виде целых чисел. Но у меня проблема с удалением двух текстов редактирования с помощью кнопки всякий раз, когда я нажимаю кнопку удаления поля.


// 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--;

                }
            }
        });

Я ожидаю, что результат будет всякий раз, когда я нажимаю кнопку «Удалить поле», он удалит самые нижние последние два текста редактирования, которые являются именем и ценой.

0
0
58
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

После нажатия кнопки просто сделайте это:

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--;

            }
        }
    });

@Justin в любое время, приятель ... Если это помогло, проголосуйте за ответ и отметьте его как проверенный ответ ...

Rajat Mehra 31.05.2019 07:57

Удалите его из родительского.

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);
}

Другие вопросы по теме