Как удалить динамически созданный EditText? - PullRequest
0 голосов
/ 27 июня 2019

Я хочу удалить свой динамически созданный текст редактирования, но не могу найти этот идентификатор edittext .. В принципе, я понятия не имею ...

Я использовал этот код для создания Edittext ..

public void addEditText() {

    // add edittext
    etPincode = new EditText(mActivity);
    allEt.add(etPincode);
    LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    p.setMargins(0, 5, 0, 0);

    etPincode.setLayoutParams(p);
    etPincode.setId(numberOfLines + 1);
    etPincode.setPadding(50,50,50,50);
    etPincode.setBackgroundResource(R.drawable.et_rectangular_noradius);
    etPincode.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL);
    int maxLength = 10;
    InputFilter[] fArray = new InputFilter[1];
    fArray[0] = new InputFilter.LengthFilter(maxLength);
    etPincode.setFilters(fArray);
    Log.v("etttId1", String.valueOf(etPincode.getId()));
    Log.v("etttId2", String.valueOf(numberOfLines));

    llPincode.addView(etPincode);
    numberOfLines++;
}

и этот код для извлечения значений из edittext .

strings[] = new String[allEt.size()];
    for(int i=0; i < allEt.size(); i++){
        strings[i] = allEt.get(i).getText().toString();
        pincodeArray.add(strings[i]);
    }

    pincodes= String.valueOf(pincodeArray);

Я хочу удалить свой текст редактирования, а также добавить одно изображение удаления справа от текста редактирования.

Ответы [ 2 ]

0 голосов
/ 27 июня 2019

Поскольку у вас уже есть ссылка на etPincode, сохраненная вне addEditText (), вы можете просто сделать:

public void removeEdit(){
    llPincode.removeView(etPincode);
}
0 голосов
/ 27 июня 2019

Вы можете удалить его, используя llPincode

, если у llPincode есть только один дочерний элемент или вам известна позиция, тогда используйте:

llPincode.removeChildAt(position);

, если llPincode имеет несколько представленийзатем используйте цикл

foreach(int i=0; i< llPincode.toChildCount; i++){
    if(view instance of EditText){
        llPincode.removeChildAt(i)
    }
}
...