【发布时间】:2012-03-30 05:09:10
【问题描述】:
我创建了一个ListView 并使用Adapter 填充它。
Adapter类的GetView()如下:
LayoutInflater inflater = activity.LayoutInflater;
if (convertView == null)
{
convertView = inflater.Inflate(Resource.Layout.List_MktData, null);
}
DataRow dr;
object[] row;
if(position==0)
{
Console.WriteLine("In position 0");
dr = result.Rows[0];
row=dr.ItemArray;
tvCMPValue.Text=row[0].ToString();
tvPrevClose.Text=row[1].ToString();
tvOpen.Text=row[2].ToString();
tvHigh.Text=row[3].ToString();
tvLow.Text=row[4].ToString();
tvClose.Text=row[5].ToString();
}
else if(position==1)
{
Console.WriteLine("In position 1");
dr = result.Rows[1];
row=dr.ItemArray;
tvPercChgValue.Text=row[0].ToString();
tvPrevCloseValue.Text=row[1].ToString();
tvOpenValue.Text=row[2].ToString();
tvHighValue.Text=row[3].ToString();
tvLowValue.Text=row[4].ToString();
tvCloseValue.Text=row[5].ToString();
}
所有以 tv 开头的元素都是 TextView 在 ListView 中。
现在的问题是,当我运行此代码时,我得到如下输出,如屏幕截图所示。
即Row1 和 Row2 的内容显示在 Row1' whileRow2` 中显示正确的数据。
我知道这与position变量有关,但是在花了很多时间之后,我仍然无法破解它。
注意:数据来自DataTable,有两行。
ListView 的第一行应填充DataTable 的第一行,ListView 的第二行应填充DataTable 的第二行。
对于 Android 的 Mono,我绝对是初学者,所以任何帮助表示赞赏...
【问题讨论】:
标签: c# android android-listview adapter xamarin.android