该逻辑用带签名的函数编写

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?


如果尝试在AdapterViewIntegerButton上创建Socket,则该语法将引发编译器错误。换句话说,它增加了一些编译时类型的安全性。

关于java - ListAdapters和WrapperListAdapter算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2882592/

10-09 16:00