【问题标题】:What happens to String[] from and int [] to when I override newView/bindView in SimpleCursorAdapter当我在 SimpleCursorAdapter 中覆盖 newView/bindView 时,String[] from 和 int [] to 会发生什么
【发布时间】:2013-07-30 22:20:50
【问题描述】:
在我扩展 SimpleCursorAdapter 并覆盖 newView/getView 之前,我会在构造函数中指定使用 to 和 from 参数填充哪些 TextView。
现在当我重写时,to/from 参数似乎没用了。如果我没有将列名传递给“from”,我仍然可以访问该列,同时我无法通过将 null 传递给两者来构造适配器(所以我只传递一个列而不是获取 NullPointerException )。
我应该在 bindView 中以某种方式使用 to 和 from 吗?如果有,怎么做?
【问题讨论】:
标签:
android
simplecursoradapter
【解决方案1】:
现在当我重写时,to/from 参数似乎没用了。
SimpleCursorAdapter 被设计为(顾名思义)作为一个简单的适配器,将有限范围的视图绑定到Cursor 的数据,通过两个数组进行映射(列名到具有指定视图的视图)身份证)。如果您覆盖SimpleCursorAdapter(尤其是执行绑定的newView() 和bindView() 方法),那么这些列并不是真正必要的,因为您将自己处理事情。
如果我没有将列名传递给“from”,我仍然可以访问该列,同时我无法通过传递来构造适配器
对两者都为空(所以我只传递一列而不是得到
NullPointerException)。
虽然您可能会自己进行映射(我不知道您覆盖了哪些方法以及如何覆盖)这些列在适配器代码的其他部分中使用,因此应避免为其中任何一个数组传递 null .无论如何,真正的问题是SimpleCursorAdapter 是针对基本场景的简单类设计。如果您发现需要覆盖它,那么您最好扩展它的超类 CursorAdapter(没有这些数组)并做任何您想做的事情。
我应该在 bindView 中以某种方式使用 to 和 from 吗?如果有,怎么做?
由于这些数组表示来自 Cursor 的列以及将数据绑定到的视图的 ID,因此使用它们是有意义的。
【解决方案2】:
customAdapter 可以为空,因为您可以从 getView() 控制 TextView 等
所以你可以通过to/from parameters进行控制
或来自getView()