首页 > 学院 > 开发设计 > 正文

xamarin SimpleAdapter绑定出错问题

2019-11-17 02:50:26
字体:
来源:转载
供稿:网友

xamarin SimpleAdapter绑定出错问题

问题:今天在实验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是很好,但这个也太坑了吧,非要面向接口,好歹弄个文档说明一下。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表