此逻辑用带签名的函数
编写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<?>
?
答案 0 :(得分:1)
有更好的方法吗?
抓住Cursor
对象并在其上调用requery()
,而不是尝试从适配器中挖出来。
另外,理想情况下,您无需致电notifyDataSetChanged()
- CursorAdapter
自动执行此操作,并希望WrapperListAdapter
将挂钩CursorAdapter
并级联{ {1}}操作。
此外,还有什么意义吗? AdapterView中的 签名而不仅仅是AdapterView?
如果您尝试在notifyDataSetChanged()
,AdapterView
或Integer
上创建Button
,则该语法将引发编译错误。换句话说,它增加了一点编译时类型的安全性。