2012-02-27 76 views
1

我想用LayouInflater以編程方式創建我的RelativeLayout但將在AddView方法的錯誤,繼承人是我的代碼:LayoutInflater單爲Android

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/relativeAgedSummary"  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
</RelativeLayout> 

ViewGroup relativeAgedSummary=FindViewById<ViewGroup>(Resource.Id.relativeAgedSummary); 
View view = this.LayoutInflater.Inflate(
           Resource.Layout.aged_summary_list_item, 
           relativeAgedSummary, false);  

for (int i = 0; i < agedValues.Count; i++) { 
    var row = agedValues.ElementAt(i); 
    if(row.Range == 0 && row.IsTotal == false) 
    { 
     RelativeLayout rl = view.FindViewById<RelativeLayout>(
              Resource.Id.relativeLayoutAgedSummaryItem); 
     rl.SetBackgroundResource(Resource.Color.lightBlue); 
     if(contA==0) 
     { 
      TextView tv = (TextView)view.FindViewById(Resource.Id.txtAgedSummary); 
      tv.SetText(labelsAgedSummary[row.Range], TextView.BufferType.Normal); 
      contA++; 
     }   
     relativeAgedSummary.AddView(view); 
    } 
+0

它拋出的錯誤是什麼? http://docs.xamarin.com/android/advanced_topics/android_debug_log – 2012-02-27 19:47:58

+0

一個固定的,但現在我想添加更多的實際佈局,它只出現一個 – arkmetal 2012-02-27 20:00:09

回答

3

你是什麼意思「它只會出現一個」。如果你想多個實例添加到relativeAgedSummary,那麼你將不得不每次都重新膨脹aged_summary_list_item

for (int i = 0; i < agedValues.Count; i++) 
{ 
    View view = this.LayoutInflater.Inflate(
        Resource.Layout.aged_summary_list_item, 
        relativeAgedSummary, false); 

    var row = agedValues.ElementAt(i); 

    // the logic here... 

    relativeAgedSummary.AddView(view); 
} 

這是因爲你正試圖添加同一對象不止一次。它會忽略添加。然後在循環中重複修改相同的項目,從而導致它看起來只添加了「最後一個」項目。