Ссылки на макет - PullRequest
       1

Ссылки на макет

2 голосов
/ 27 ноября 2011

У меня есть этот XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:id="@+id/LinearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/fondoverde3"
    android:gravity="top"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <com.google.ads.AdView
            android:id="@+id/ad"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            ads:adSize="BANNER"
            ads:adUnitId="adasdasdasdas"
            ads:loadAdOnCreate="true" />
    </LinearLayout>

    <ScrollView
        android:id="@+id/ScrollView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <RelativeLayout
            android:id="@+id/RelativeLayout1"
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >

            ......

            <LinearLayout
                android:id="@+id/LinearLayout2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/linearLayout4"
                android:layout_marginTop="10dp"
                android:orientation="vertical" >
            </LinearLayout>

        </RelativeLayout>
    </ScrollView>

</LinearLayout>

Так что я хотел бы сослаться в своем Java-коде на LinearLayout2 и добавить некоторые вещи.Я с помощью простого кода доказываю, что мой код работает (и он работает !! Я показываю два текстовых представления), именно с этим:

    LinearLayout ll = (LinearLayout)findViewById(R.id.LinearLayout2);
    ll.setOrientation(LinearLayout.VERTICAL);
    TextView tituloIngr2 = new TextView(this);
tituloIngr2.setText("AAAAA");
ll.addView(tituloIngr2);
    TextView tituloIngr1 = new TextView(this);
tituloIngr1.setText("BBBBB");
ll.addView(tituloIngr1);

Но то, что я хотел бы сделать, это показать в этомlinearLayout2 много Textview, которые я беру из StringArray, поэтому код следующий:

    LinearLayout ll = (LinearLayout)findViewById(R.id.LinearLayout2);
    ll.setOrientation(LinearLayout.VERTICAL);

    for (int m= 0; m<few.length; m++) {

        TextView ingr= new TextView(this);
        ingr.setText(few[m]);

        ingr.setPadding(5, 5, 5, 5);
        ingr.setGravity(0x11);//sacados todos los values de developers
        ingr.setTextColor(0x96610098);
        ingr.setBackgroundResource(android.R.color.white);
        ingr.setTextSize(22);
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(                                           LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    layoutParams.setMargins(0, 25, 0, 0);
    ll.addView(ingr, layoutParams);
}
    this.setContentView(ll);

Ошибка принудительного закрытия, и журнал cat:

11-27 17:09:58.213: E/AndroidRuntime(1440): java.lang.RuntimeException: Unable to start activity ComponentInfo{back.now/back.now.Tree}: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

1 Ответ

2 голосов
/ 27 ноября 2011

Удалить этот вызов:

this.setContentView(ll);

ll уже является частью представления содержимого. Попытка добавить его снова в качестве представления содержимого, вероятно, вызывает исключение. Вам также не нужен этот звонок:

ll.setOrientation(LinearLayout.VERTICAL);

Ориентация указана как вертикальная в xml.

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