Ошибка Java: указанный дочерний элемент уже имеет родителя.Сначала вы должны вызвать removeView () у родителя ребенка - PullRequest
0 голосов
/ 24 октября 2011

Я делаю приложение для Android, в котором я добавляю динамические строки в макет таблицы, но он добавляет только 5 строк, а затем выдает исключение:

java.lang.IllegalStateException: указанноеребенок уже имеет родителя.
Вы должны сначала вызвать removeView () для родителя ребенка.

Я использую для него следующий код:

                 if(profileimage.equals("")){}
                 else{
            System.out.println("image"+profileimage);
             TableRow tr = new TableRow(this);
             TextView profileimage1= new TextView(this);
             profileimage1.setTextColor(Color.BLACK);
             profileimage1.setText("Profile Image :");
              String imageUrl = "http://ondamove.it/English/images/users/";
                imageUrl=imageUrl+profileimage;
                System.out.println(imageUrl);
                ImageView image= new ImageView(this);
                image.setImageBitmap(DownloadFile(imageUrl));
                System.out.println(image.toString());
                image.setPadding(20, 10, 0, 0);
                tr.addView(profileimage1, lp);
                tr.addView(image);

                table.addView(tr, new TableLayout.LayoutParams(
                        LayoutParams.FILL_PARENT,
                        LayoutParams.WRAP_CONTENT));

                View v= new View(this);
                v.setBackgroundColor(drawable.blue);
                v.setMinimumHeight(2);

                table.addView(v, new TableLayout.LayoutParams(
                        LayoutParams.FILL_PARENT,
                        LayoutParams.WRAP_CONTENT));

        }
     if(firstname.equals(""))
     {}
     else
   {    
         System.out.println("firstname  in esleeeee"+firstname);
        TableRow tr = new TableRow(this);
        TextView firstnametext= new TextView(this);
        firstnametext.setText("First Name    :" + firstname);
        firstnametext.setHeight(50);
        firstnametext.setTextColor(Color.BLACK);
        //firstnametext.setGravity(Gravity.LEFT);
        //firstnametext.setPadding(10, 18,0,0);
        firstnametext.setLayoutParams(lp);
        tr.addView(firstnametext, lp);
        tr.setMinimumHeight(50);
         System.out.println("firstname"+firstname);
        table.addView(tr, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));

        View v= new View(this);
        v.setBackgroundColor(drawable.blue);
        v.setMinimumHeight(2);

        table.addView(v, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
   }
    System.out.println("bbbbbbb");

    if(lastname.equals(""))
            {}
    else


    {   
         System.out.println("lastname in elseeeee"+lastname);
        TableRow tr = new TableRow(this);
        TextView lastnametext= new TextView(this);
        lastnametext.setText("Last Name    :" + lastname);
        lastnametext.setHeight(50);
        lastnametext.setTextColor(Color.BLACK);
        lastnametext.setGravity(Gravity.LEFT);
        lastnametext.setPadding(10,18,0,0);

        lastnametext.setLayoutParams(lp);
        tr.addView(lastnametext, lp);
        tr.setMinimumHeight(50);
        table.addView(tr, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));

        View v= new View(this);
        v.setBackgroundColor(drawable.blue);
        v.setMinimumHeight(2);

        table.addView(v, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
    }


    if(birthday.equals("")){}
    else
    {   
        TableRow tr = new TableRow(this);
        TextView birtdaytext= new TextView(this);
        birtdaytext.setText("Birthday    :" + birthday);
        birtdaytext.setHeight(50);
        birtdaytext.setTextColor(Color.BLACK);
        birtdaytext.setGravity(Gravity.LEFT);
        birtdaytext.setPadding(10, 18,0,0);
        birtdaytext.setLayoutParams(lp);
        tr.addView(birtdaytext, lp);
        tr.setMinimumHeight(50);
        table.addView(tr, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));

        View v= new View(this);
        v.setBackgroundColor(drawable.blue);
        v.setMinimumHeight(2);

        table.addView(v, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));

    }
    if(town.equals("")){}
    else
    {   
        TableRow tr = new TableRow(this);
        TextView towntext= new TextView(this);
        towntext.setText("Town    :" + town);
        towntext.setHeight(50);
        towntext.setTextColor(Color.BLACK);

        towntext.setGravity(Gravity.LEFT);
        towntext.setPadding(10, 18,0,0);

        towntext.setLayoutParams(lp);
        tr.addView(towntext, lp);
        tr.setMinimumHeight(50);
        table.addView(tr, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));

        View v= new View(this);
        v.setBackgroundColor(drawable.blue);
        v.setMinimumHeight(2);

        table.addView(v, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));

    }


    if(email.equals("")){}
    else
    {   TableRow tr = new TableRow(this);
        TextView emailtext= new TextView(this);
        emailtext.setText("Email    :" + email);
        emailtext.setHeight(50);
        emailtext.setTextColor(Color.BLACK);
        emailtext.setGravity(Gravity.LEFT);
        emailtext.setPadding(10, 18,0,0);

        table.addView(emailtext);

        emailtext.setLayoutParams(lp);
        tr.addView(emailtext, lp);
        tr.setMinimumHeight(50);
        table.addView(tr, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
        View v1= new View(this);
        v1.setBackgroundColor(drawable.blue);
        v1.setMinimumHeight(2);

        table.addView(v1, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
        table.removeViewInLayout(tr);
        table.removeAllViews();

    }

    if(sex.equals("")){}
    else

    {
        System.out.println("in sex part"+sex);
        TableRow tr1 = new TableRow(this);
        TextView sextext= new TextView(this);
        sextext.setText("Sex    :" + sex);
        sextext.setHeight(50);
        sextext.setTextColor(Color.BLACK);
        sextext.setGravity(Gravity.LEFT);
        sextext.setPadding(10, 18,0,0);
        table.addView(sextext);
        sextext.setLayoutParams(lp);
        tr1.addView(sextext, lp);
        tr1.setMinimumHeight(50);
        table.addView(tr1, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));

        View v2= new View(this);
        v2.setBackgroundColor(drawable.blue);
        v2.setMinimumHeight(2);

        table.addView(v2, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));


    }

    if(cellno.equals("")){}
    else
    {   TableRow tr = new TableRow(this);
        TextView cellnotext= new TextView(this);
        cellnotext.setText("Cell No     :" + cellno);
        cellnotext.setHeight(50);
        cellnotext.setTextColor(Color.BLACK);
        cellnotext.setGravity(Gravity.LEFT);
        cellnotext.setPadding(10, 18,0,0);
        cellnotext.setLayoutParams(lp);
        tr.addView(cellnotext, lp);
        tr.setMinimumHeight(50);
        table.addView(tr, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));

        View v= new View(this);
        v.setBackgroundColor(drawable.blue);
        v.setMinimumHeight(2);

        table.addView(v, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
    }


    if(education.equals("")){}
    else{   
        TableRow tr = new TableRow(this);
        TextView edutext= new TextView(this);
        edutext.setText("Education     :" + education);
        edutext.setHeight(50);
        edutext.setTextColor(Color.BLACK);
        edutext.setGravity(Gravity.LEFT);
        edutext.setPadding(10, 18,0,0);
        edutext.setLayoutParams(lp);
        tr.addView(edutext, lp);
        tr.setMinimumHeight(50);
        table.addView(tr, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));

        View v= new View(this);
        v.setBackgroundColor(drawable.blue);
        v.setMinimumHeight(2);

        table.addView(v, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));;
    }

А такжеизображение не загружается и не отображается.но тот же метод для загрузки изображений работает в другом классе.Может ли кто-нибудь помочь мне в этом?

1 Ответ

0 голосов
/ 24 октября 2011

Вы пытались дать уникальный идентификатор для строк таблицы или представлений, которые вы добавляете в таблицу? Попробуйте setId для этих строк таблицы и представлений.

...