xamarin SimpleAdapter绑定出错问题_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > xamarin SimpleAdapter绑定出错问题

xamarin SimpleAdapter绑定出错问题

 2014/10/11 19:15:04  金陵一只猪  程序员俱乐部  我要评论(2)
  • 摘要:问题:今天在实验xamarin中SimpleAdapter绑定到ListView时,出现闪退的现象,见图:解决方法:SimpleAdapter中的构造函数publicSimpleAdapter(Contextcontext,IList<IDictionary<string,object>>data,intresource,string[]from,int[]to)第二个构造参数IList<IDictionary<string,object>>
  • 标签:问题

问题:今天在实验xamarin中SimpleAdapter绑定到ListView时,出现闪退的现象,

见图:

解决方法

  SimpleAdapter中的构造函数public SimpleAdapter(Context context, IList<IDictionary<string, object>> data, int resource, string[] from, int[] to) 第二个构造参数IList<IDictionary<string, object>> data是一个借口,但是在创建Item的时候我使用了如下代码:

  var data = new List<IDictionary<string, object>>();

  IDictionary<string, object> item;

  item = new Dictionary<string, object>();
  item.Add("Name", "张三);
  item.Add("Sex", "Male");
  data.Add(item);

修改后代码如下:

  var data = new List<IDictionary<string, object>>();

  IDictionary<string, object> item;

  item = new JavaDictionary<string, object>(); 
  item.Add("Name", "张三);
  item.Add("Sex", "Male");
  data.Add(item);

使用VS2012自带的Android Device Logging 工具可以看见如下信息:

  

原因:

  vs2012中无法使用代码检查出此问题,属于运行时问题,但是异常又无法正确抛出,通过Android Device Logging 工具才能看见,原来是因为System.Collections.Generic.Dictionary无法在运行时转换为java.util.Map,而Android.Runtime.JavaDictionary可以,至于为什么无法转换,无非就是没有继承的关系.

  Mono for android是很好,但这个也太坑了吧,非要面向接口,好歹弄个文档说明一下。

 

    网友 2015/3/29 19:27:08 发表

    十分感谢,调试一天不如看此文5分钟!!

    网友 2015/3/29 19:26:28 发表

    十分感谢,调试一天不如看此文5分钟!!

发表评论
用户名: 匿名