2012-03-16 6 views
1

Я пытаюсь сделать C# Android Listview, который поддерживает несколько столбцов. Я нашел некоторый код, как сделать Listview здесь: http://www.heikkitoivonen.net/blog/2009/02/15/multicolumn-listview-in-android/Android Listview с несколькими столбцами

Однако это Java-код, так что я преобразовал его в C# следующим образом:

 // List view control 
     ListView list = (ListView) FindViewById(Resource.Id.mylist); 
     List<Dictionary<string, string>> mylist = new List<Dictionary<string, string>>(); 
     Dictionary<string, string> map = new Dictionary<string, string>(); 

     map.Add("Profit Centre", "Systems"); 
     map.Add("Last Updated", "16/02/2012 15:34"); 
     mylist.Add(map); 
     map = new Dictionary<string, string>(); 
     map.Add("Profit Centre", "IDTS"); 
     map.Add("Last Updated", "20/02/2012 10:26"); 
     mylist.Add(map); 

     SimpleAdapter mSchedule = new SimpleAdapter(this, mylist, Resource.Layout.list_item,new String[] {"Profit Centre", "Lasted Updated",}, new int[] { Resource.Id.columnA, Resource.Id.columnB}); 

     list.Adapter = mSchedule; 

SimpleAdapter жалуется, что второй параметр является неверным. Он сообщает об этом

ERROR 1 =

Лучший перегруженный метод соответствия для «Android.Widget.SimpleAdapter.SimpleAdapter (Android.Content.Context, System.Collections.Generic.IList>, INT, строка [], ИНТ [])»имеет некоторые недопустимые аргументы

ERROR 2 =

Аргумент 2: не может конвертировать из 'System.Collections.Generic.List>' до 'System.Collections.Generic.IList>'

Почему это? Пожалуйста, не могли бы вы помочь мне, поскольку я исследовал использование google, чтобы узнать, есть ли способы создания Listview (для Android) с несколькими столбцами, но не могут найти в C# только код Java.

Спасибо,

Эндрю Эшкрофт

+0

Вы используете C# для андроида развит мат ветствующую защитную эк? – alykhalid

+0

Да, я использую MonoDevelop для кода на C# для Android Development – coolandy28

ответ

1

У вас есть несоответствие между определением MyList и ожидаемым списком в Android SimpleAdapter

изменить код на следующее;

  // List view control 
     ListView list = (ListView)FindViewById(Resource.Id.mylist); 
     IList<IDictionary<string, object>> mylist = new List<IDictionary<string, object>>(); 
     IDictionary<string, object> map = new Dictionary<string, object>(); 
     map.Add("Profit Centre", "Systems");  
     map.Add("Last Updated", "16/02/2012 15:34");  
     mylist.Add(map);  
     map = new Dictionary<string, object>()>;  
     map.Add("Profit Centre", "IDTS");  
     map.Add("Last Updated", "20/02/2012 10:26");  
     mylist.Add(map);  

     SimpleAdapter mSchedule = new SimpleAdapter(this, mylist, Resource.Layout.list_item,new String[] {"Profit Centre", "Lasted Updated",}, new int[] { Resource.Id.columnA, Resource.Id.columnB});  

     ListAdapter = mSchedule; 

Если ваша деятельность реализует ListActivity, чем вы должны заменить строку

list.Adapter = mSchedule; 

с

ListAdapter = mSchedule; 

С уважением,

Шалом Keynan

Смежные вопросы