0
    LinearLayout  lay1 = (LinearLayout) findViewById(R.id.lay1);

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

                           View child = lay1.getChildAt(i);
                         LinearLayout  lay3 = (LinearLayout) child.findViewById(R.id.lay3);

                           for (j = 0; j <list2.size(); j++) {
                               View child1 = lay3.getChildAt(j);
      //                         View hiddenInfo11 = getActivity().getLayoutInflater().inflate(R.layout.add_inner_item, lay3 , false);
                               final TextView name = (TextView) child1.findViewById(R.id.name);
                               name.setText("new");
                           }
                       }

XML レイアウト:

                        <LinearLayout
                            android:id="@+id/lay1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_margin="4dp"
                            android:orientation="horizontal">


                        </LinearLayout>

                        <LinearLayout
                            android:id="@+id/lay2"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_margin="4dp"
                            android:background="@color/white"
                            android:orientation="horizontal">

                        </LinearLayout>

add_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">


    <LinearLayout
        android:id="@+id/lay3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="vertical">

    </LinearLayout>


</LinearLayout>

add_inner_item.Xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    >

    <TextView android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="" />

</LinearLayout>

次の方法を使用して動的にビューを追加しました。

  for(int i=0;i<list.size();i++) {
                    View hiddenInfo = getActivity().getLayoutInflater().inflate(R.layout.add_item, lay, false);
                    LinearLayout lay3 = (LinearLayout) hiddenInfo.findViewById(R.id.lay3);
                    lay1.addView(hiddenInfo);

                    for (j = 0; j < list2.size(); j++) {


                            View hiddenInfo1 = getActivity().getLayoutInflater().inflate(R.layout.add_inner_item, lay3, false);

                            final TextView name = (TextView) hiddenInfo1.findViewById(R.id.name);


                            name.setText(list2.get(j).get("Name"));

                            lay3.addView(hiddenInfo1);

                    }

動的に作成するレイアウトが1つあり、ボタンクリックビューの外側から子テキストビューを更新したい.私はこのコードを試しました.しかし、何も変更されていません.誰でもこのサンプルに提案を与えることができます.

4

1 に答える 1

1

「lay1」コンテナ内の「lay2」を探しています。XML レイアウトによると、それらはネストされていないため、この方法では見つけることができません。これを次のように変更します。

LinearLayout  lay2 = (LinearLayout) findViewById(R.id.lay2);

実際のlay2コンテナを取得する必要があります。ビューを作成するためのコードを見たので、テキストビューがそこにあるかどうかはわかりません。

編集:

親を指定していません。これにはアクティビティを使用する必要があります。何かのようなもの:

LinearLayout  lay2 = (LinearLayout) MyActivity.this.findViewById(R.id.lay2);
于 2015-11-17T13:02:55.287 に答える