Я создал ListView
и заполнил его. Я использую Adapter
.с использованием адаптера для отображения ListView Mono для android
GetView()
из Adapter
класса выглядит следующим образом:
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
.
Теперь проблема в том, когда я запускаю этот код, я получаю следующий вывод, как показано на снимке экрана.
г. Содержание Row1
и Row2
отображается в Row1' while
Строка содержит корректные данные.
Я знаю, что это связано с position
переменной, но, потратив много времени на это, я все еще не в состоянии взломать его.
Примечание: данные поступают из DataTable
, имеющих два ряда.
первый ряд ListView
должны быть заполнены с 1-го ряда DataTable
в то время как второй ряд ListView
должны быть заполнены 2 строки DataTable
.
Я абсолютный новичок, когда дело доходит до Mono для Android, так что любая помощь оценили ...
то как насчет оставшихся текстовых полей строки 2? Как их заполнять? – GAMA
Не могли бы вы разместить содержимое ресурса Resource.Layout.List_MktData? – Matthew
Основываясь на вашем коде выше, будет ли у вас только два пункта в списке? Вместо этого вы можете использовать табличный макет, если это так. – Matthew