ListAdapters和WrapperListAdapter算法

时间:2010-05-21 13:48:52

标签: java android listadapter

此逻辑用带签名的函数

编写
private void showDialog(final AdapterView<? extends Adapter> parent,
     String title, String message, final Tag subject)

有更好的方法吗?

// refresh adapter
SimpleCursorAdapter adapter;
if (parent.getAdapter() instanceof WrapperListAdapter) {
    adapter = (SimpleCursorAdapter) ((WrapperListAdapter) parent.getAdapter()).getWrappedAdapter();
} else {
    adapter = (SimpleCursorAdapter) parent.getAdapter();
}
adapter.getCursor().requery();
adapter.notifyDataSetChanged();

此外,签名中是否有AdapterView<? extends Adapter>而不只是AdapterView<?>

1 个答案:

答案 0 :(得分:1)

  

有更好的方法吗?

抓住Cursor对象并在其上调用requery(),而不是尝试从适配器中挖出来。

另外,理想情况下,您无需致电notifyDataSetChanged() - CursorAdapter自动执行此操作,并希望WrapperListAdapter将挂钩CursorAdapter并级联{ {1}}操作。

  

此外,还有什么意义吗?   AdapterView中的   签名而不仅仅是AdapterView?

如果您尝试在notifyDataSetChanged()AdapterViewInteger上创建Button,则该语法将引发编译错误。换句话说,它增加了一点编译时类型的安全性。