如何从通用适配器调用notifyDataSetChanged()

Mat*_*y F 4 android listview adapter listadapter

一个OnItemClickListenerfor a ListView有以下方法:

@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
Run Code Online (Sandbox Code Playgroud)

我想让ListView刷新器后面的适配器,我相信这是通过使用:

BaseAdapter.notifyDataSetChanged()
Run Code Online (Sandbox Code Playgroud)

如何使用方法中的parent参数onItemClick执行此操作?到目前为止,我已经尝试过:

parent.getAdapter().notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

这会抛出一个错误,因为返回的对象是类HeaderViewListAdapter,由于unknown原因不是它的子类BaseAdapter.

Noa*_*oah 5

您还可以通过自定义适配器访问BaseAdapter,如以下代码片段所示:

public class HeaderViewListAdapter extends BaseAdapter {

...

  @Override
  public void notifyDataSetChanged() {
    super.notifyDataSetChanged();
  }

...
}
Run Code Online (Sandbox Code Playgroud)


rus*_*nys 5

这会引发错误,因为返回的对象是HeaderViewListAdapter类,由于unknown原因,它不是BaseAdapter的子类.

((BaseAdapter) ((HeaderViewListAdapter)listView.getAdapter()).getWrappedAdapter()).notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)