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