我想使用LayouInflater以编程方式创建我的relativeLayout但是它在AddView方法上抛出错误,继承人是我的代码:
<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 :(得分: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);
}
这是因为您尝试多次添加同一个对象。它将忽略添加。然后在循环中重复修改相同的项目,从而导致它看起来像只添加了“最后”项目。