我正在使用HeaderListView(http://applidium.github.io/HeaderListView/)将粘性标头添加到ListView。一切正常,但我无法找到单击了哪个项目。不幸的是,他们没有在演示应用程序中显示此内容。

我在他们的网站上发现我需要使用onRowItemClick方法,但不确定如何调用它。到目前为止,我有:

SectionListAdapter bindingData = new SectionListAdapter(c, inflater, 3); //SectionListAdapter extends SectionAdapter
articleList.setAdapter(bindingData); //articleList = HeaderListView

// Click event for single list row
articleList.setOnItemClickListener(new OnClickListener() {
public void onRowItemClick(AdapterView<?> parent, View view, int section, int row, long id) {
    Intent i = new Intent();
    i.setClass(getActivity(), ArticleActivity.class);

    // Pass object to next activity

    startActivity(i);
}
});


我在下一行中做错了什么?

articleList.setOnItemClickListener(new OnClickListener() {


谢谢!

最佳答案

查看源代码之后,您似乎必须创建自定义适配器类(例如:MyCustomSectionAdapter,也许这是您的“ SectionListAdapter”)。

在此类中,您将实现方法:

public void onRowItemClick(AdapterView<?> parent, View view, int section, int row, long id) {


}


我猜应该叫哪个。

编辑:

我已经下载了代码,但对我也不起作用。

将第40行的以下代码添加到HeaderListView类后,它确实起作用。

   mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            if (mAdapter != null)
                mAdapter.onItemClick(parent, view, position, id);
        }
    });


好像从未建立过点击连接。觉得有点奇怪,我想应该有另一种解决方案,但这暂时有效。

代码许可证:http://applidium.github.io/HeaderListView/#license

10-07 19:49