xamarin SimpleAdapter绑定出错问题
阅读原文时间:2024年07月31日阅读:1

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

见图:

解决方法:

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

  var data = new List>();

  IDictionary item;

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

修改后代码如下:

  var data = new List>();

  IDictionary item;

  item = new JavaDictionary(); 
  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是很好,但这个也太坑了吧,非要面向接口,好歹弄个文档说明一下。

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章