我正在实现FlipBoard类型的视图,其中FlipAdapter有多个页面,其中有getView()在这个我添加另一个listview与适配器,并放置onitemclickListener如下面的代码所示。我的问题是,点击监听器是在第二页的页面项目上工作,而显示的视图是第一页
例如:item1、item2、item3在第1页,item4、item5、item6在第2页。当你点击第1项时,实际上点击的是第二页的第4项。
找不到任何帮助将不胜感激。
@Overridepublic View getView(int position, View convertView, ViewGroup parent) {
convertView = inflater.inflate(R.layout.story_list_page, parent, false);
ListView listView = (ListView) convertView
.findViewById(R.id.list_content);
listView.setVerticalScrollBarEnabled(false);
Log.d(TAG, "The current page id is " + position + "item id "
+ items.get(position).getId());
mCurrentPageAdapter = new PageListAdapter(mContext, position);
listView.setAdapter(mCurrentPageAdapter);
listView.setOnTouchListener(gestureListener);
listView.setOnItemClickListener(itemClickListener);
return convertView;
onItemCLickListner ()
OnItemClickListener itemClickListener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view,
int position, long arg3) {
Log.d("adapter", "Item clicked" + position);
ContentData item = (ContentData) mCurrentPageAdapter
.getItem(position);
Intent detailsIntent = new Intent(mContext, StoryContentActivity.class);
Log.d(TAG, "looking out for story id "+item.id);
detailsIntent.putExtra("STORY_ID", item.id);
mContext.startActivity(detailsIntent);
}
};
将相同的位置传递给
mCurrentPageAdapter = new PageListAdapter(mContext, position);
在第一页中,您对项目1的意图是1,并且是正确的,但在第二页中,创建了新的片段,因此位置也是1,并且从头开始,因此按每页中的项目数添加位置,例如在第一页中添加0在第二页中添加第一页的所有项目,在第三页中添加第一页的所有项目,然后遵循模式。
希望对你有所帮助