该逻辑用带签名的函数编写
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<?>
有什么意义吗? 最佳答案
有更好的方法吗?
抓住您的Cursor
对象并对其调用requery()
,而不是尝试从适配器中挖掘出来。
同样,理想情况下,您无需调用notifyDataSetChanged()
- CursorAdapter
会自动执行此操作,希望WrapperListAdapter
可以挂接到CursorAdapter
并级联notifyDataSetChanged()
操作。
另外,有什么要点
AdapterView中的
签名,而不仅仅是AdapterView?
如果尝试在AdapterView
或Integer
或Button
上创建Socket
,则该语法将引发编译器错误。换句话说,它增加了一些编译时类型的安全性。
关于java - ListAdapters和WrapperListAdapter算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2882592/