«У указанного ребенка уже есть родитель. Сначала вы должны вызвать removeView () у родителя ребенка. ' и не уверен, где я не прав - PullRequest
0 голосов
/ 02 апреля 2020

Это мой фрагмент кода для Numbers Activity: Примечание: 'words' - это 'ArrayList' типа String с элементами в диапазоне от 'One-Ten' до 'size = 9'.

// Find the root view of the Numbers activity
   LinearLayout rootViewNumbers = findViewById(R.id.root_numbers_LL);

// creating a text view to assign the words to it
   TextView wordView = new TextView(this);

for(int i = 0; i <= words.size(); i++) {

            // setting the text to text view by using the 'i' for index position iterator
            wordView.setText(words.get(i));

            // setting the text view to the root view
            rootViewNumbers.addView(wordView);
        }

Когда я запускаю приложение, я получаю сообщение об ошибке:

'У указанного ребенка уже есть родитель. Сначала вы должны вызвать removeView () для родительского объекта ребенка. '

Насколько я понимаю, мы объявили текстовое представление, и теперь мы перебираем l oop, чтобы добавить элементы ArrayList' words ' и добавление текстового представления к представлению root. Пожалуйста, помогите мне, где я иду не так !!

1 Ответ

0 голосов
/ 06 апреля 2020

Если вы объявите TextView внутри для l oop, вы будете добавлять новый экземпляр представления к rootViewNumbers каждую итерацию, в то время как ваш код пытается добавить тот же экземпляр представления к родительскому элементу, который выдает исключение.

Вы можете изменить свой код так:

 TextView wordView;

 for(int i = 0; i <= words.size(); i++) {

        wordView = new TextView(this)

        // setting the text to text view by using the 'i' for index position iterator
        wordView.setText(words.get(i));

        // setting the text view to the root view
        rootViewNumbers.addView(wordView);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...