Как удалить TextView, который был добавлен динамически - PullRequest
0 голосов
/ 19 сентября 2018

Итак, у меня есть фрагмент кода, в котором я создаю текстовое представление по нажатию пользователем кнопки.Поскольку он был создан после выполнения, я не уверен, что это за идентификатор.Но то, что я пытаюсь сделать, это иметь возможность удалить последний добавленный textView, а также очистить все добавленные TextView.Спасибо

private TextView createNewTextView(String text)
    {
        ArraySize++;
        final LinearLayout mLayout=findViewById(R.id.linearLayout);
        String newLine=System.getProperty("line.separator");
        final LinearLayout.LayoutParams lparams =new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        ViewGroup.LayoutParams params=(RelativeLayout.LayoutParams) mLayout.getLayoutParams();
        final TextView textView=new TextView(this);
        textView.setLayoutParams(lparams);
        textView.setText("New texT:: "+text+newLine);
        listOfNames.add(text);
        return textView;
    }

Ответы [ 4 ]

0 голосов
/ 19 сентября 2018

Вы используете removeViewAt с индексом

final LinearLayout mLayout=findViewById(R.id.linearLayout)
mLayout.removeViewAt(mLayout.getChildCount()-1); // get the last view

//or using index counter variable
//mLayout.removeViewAt(ArraySize-1); // adjust the value accordingly

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

final LinearLayout mLayout=findViewById(R.id.linearLayout)
View v = mLayout.getChildAt(mLayout.getChildCount()-1);
mLayout.removeView(v);
0 голосов
/ 19 сентября 2018

Чтобы удалить все виды:

mLayout.removeAllViews();

Чтобы удалить последний текстовый вид:

mLayout.removeView(mLayout.getChildAt(mLayout.getChildCount()-1));
0 голосов
/ 19 сентября 2018

вы можете создать XML-файл по этому пути res / values ​​/ ids.xml;

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="view_1" type="id"/>
</resources>

затем в Java вы добавляете идентификатор, например,

textView.setId(R.id.view_1);

и когда вы хотите удалить его

LinearLayout mLayout=findViewById(R.id.linearLayout);//to find in this specific view
TextView textView = (TextView)mLayout.findViewById(R.id.view_1);
mLayout.removeView(textView);
0 голосов
/ 19 сентября 2018

Как уже упоминалось в этом вопросе, вы можете просто использовать

((ViewGroup) textView.getParent()).removeView(textView);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...