当我在SimpleCursorAdapter中覆盖newView / bindView时,String [] from和int []会发生什么

时间:2013-07-30 14:03:21

标签: android simplecursoradapter

在我扩展SimpleCursorAdapter并覆盖newView / getView之前,我会指定哪个TextView用构造函数中的to和from参数填充。

现在当我覆盖时,to / from参数似乎没用。如果我没有将列名传递给“from”,我仍然可以访问该列,同时我无法通过将null传递给/来自构造适配器(所以我只传递一列而不是获取NullPointerException )。

我应该在bindView中以某种方式使用吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:0)

这些customAdapter可以为空,因为您可以从getView()控制TextView等

所以你可以控制to/from parameters

或来自getView()

答案 1 :(得分:0)

  

现在当我覆盖时,to / from参数似乎没用。

设计SimpleCursorAdapter(顾名思义)作为一个简单的适配器,将有限范围的视图绑定到Cursor的数据,通过两个数组进行映射(列名称为具有指定ids的视图)。如果您覆盖SimpleCursorAdapter(尤其是执行绑定的newView()bindView()方法),那么这些列实际上并不是必需的,因为您将自己处理。

  

如果我没有将列名传递给“from”,我仍然可以访问该列,同时我无法通过传递构造适配器   两者都是/从(因此我只传递一列不得到   的NullPointerException)。

虽然您可能自己进行映射(我不知道您覆盖哪些方法以及如何),但这些列在适配器代码的其他部分中使用,因此将null传递给其中一个数组应该要避免。无论如何,真正的问题是SimpleCursorAdapter是基本场景的简单类设计。如果你发现需要覆盖它,那么你最好扩展它的超类CursorAdapter(没有那些数组)并做你想做的任何事情。

  

我应该在bindView中以某种方式使用?如果是这样,怎么样?

由于这些数组表示来自Cursor的列和要绑定数据的视图的id,因此使用它们是有意义的。