List<String>entities;
XXAdapter adapter2 = new XXtAdapter(context, entities);
listview.setAdapter(adapter2);
假如有以上信息
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
clickedSelection = parent.getFirstVisiblePosition();
Intent intent = new Intent();
intent.setClass(getActivity(), CaseDetailedActivity.class);
// intent.putExtra("reportId", String.valueOf(entities.get(position).getId()));//不能这样用。因为有时候listview是自定义的listview,加入了headerview,这个时候,下标position就是从1开始,与entities这个list中的数据不对应,会导致下标超出界限。最好的办法是统一用adapter.getItem(int positon)来进行访问。不要因为自己保存了数据源entities就直接用entities进行取数据。
String reportId = String.valueOf(((CaseEntity)parent.getAdapter().getItem(position)).getId());//这样用才是最正确的。不会因为自定义LISTVIEW出现下标超界的错误
intent.putExtra("reportId", reportId);
getActivity().startActivity(intent);
}