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佈局: 如何在childlayout中更新textview動態創建的textview?

     <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); 

        } 

我有一個佈局動態創建和我想更新從按鈕外的孩子的TextView點擊view.I已經嘗試了本code.But沒有什麼changed.Can誰能給建議,這個樣品。

+0

你寫這個代碼onClick按鈕? – Anjali

+0

yes.inside按鈕點擊我寫了這段代碼。 – rajeshlawrance

+0

我創建了成功的視圖。但我無法更新子視圖。其實這個觀點並沒有被調用。 – rajeshlawrance

回答

1

您正在尋找「lay1」容器內的「lay2」。根據你的XML佈局,它們不是嵌套的,所以你將無法以這種方式找到它。將其更改爲:

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

您應該獲得實際的lay2容器。我不確定文本視圖是否存在,因爲我已經看到了代碼中的視圖創建。

編輯:

我沒有指定父 - 你應該使用活動這一點。例如:

LinearLayout lay2 = (LinearLayout) MyActivity.this.findViewById(R.id.lay2); 
+0

它給出錯誤,但沒有指定父視圖。 – rajeshlawrance

+0

我已經添加了一些更多的細節 - 檢查它,讓我知道它是否工作。 :) –

+0

它沒有更新的觀點。沒有任何改變。 – rajeshlawrance