每次单击按钮时如何动态删除编辑文本

时间:2019-05-29 12:28:50

标签: android android-view

我正在尝试添加带有一些附加组件的新食物,基本上每次按下添加字段按钮时,都会创建两个edittext,即附加组件的名称和价格,这会导致用户想要删除edittext名称和价格。我已经成功创建了两个edittext,它们也用我以整数形式给它们的ID设置了它们。但是,每当我单击删除字段按钮时,我都无法通过按钮删除两个edittext。


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

                }
            }
        });

我希望每次单击“删除字段”按钮时都会得到结果,它将删除最底端的两个编辑文本,即名称和价格。

4 个答案:

答案 0 :(得分:0)

单击按钮后,只需执行以下操作:

addFields.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              etPrice.setText("")
              etFoodName.setText("");
     }
}

答案 1 :(得分:0)

在您的Onclick()(override)方法中,只需将edittext设置为空字符串(“”)。

yourEditText.setText("");

答案 2 :(得分:0)

替换您的听众

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

            }
        }
    });

答案 3 :(得分:0)

从其父级删除它。

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