1

我正在使用 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() {

谢谢你!

4

1 回答 1

1

查看源代码后,您似乎必须创建自定义适配器类(例如: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

于 2013-10-22T23:15:20.040 回答