2012-03-30 71 views
0

我创建了一个ListView并填充它我使用Adapter使用适配器来显示ListView单声道为Android

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

其中开始电视所有元素都是TextView一个ListView内。

现在的问题是当我运行这段代码时,我得到如屏幕截图所示的以下输出。

Row1Row2的内容显示在Row1' while Row2`显示正确的数据。

我知道它与position变量有关,但花了很多时间后,我仍然无法破解它。

注意:数据来自DataTable有两行。

ListView的第一行应填入第一行DataTable,而第二行ListView应填入第二行DataTable

我绝对的初学者,当谈到单为Android,所以任何帮助赞赏...

screen shot

回答

1

你有什么是:2行,每行中有一个表,每个由两行组成。 你想要的是:ListView中的2行与LinearLayout一个行的TextViews

然后,对每个呼叫这样做是为了GetView

LayoutInflater inflater = activity.LayoutInflater; 
if (convertView == null) 
{ 
    convertView = inflater.Inflate(Resource.Layout.List_MktData, null); 
} 

DataRow dr; 
object[] row; 

Console.WriteLine("In position " + position); 
dr = result.Rows[position]; 
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(); 

解决了两个问题:更少的代码,它应该工作。另外,您可能会注意到,列表中的两个项目之间存在差距。这是第二行(列表项)第一行(表)的结果,这是表头行,没有任何值。

+0

那么第2行的剩余文本框呢?如何填充它们? – GAMA 2012-03-31 08:04:19

+0

你可以发布'Resource.Layout.List_MktData'资源的内容吗? – Matthew 2012-04-04 08:38:05

+0

根据你上面的代码,你会在列表中只有两个项目吗?如果是这种情况,您可以使用表格布局。 – Matthew 2012-04-04 09:08:52