Listview onItemClickListener issue Adapter with in Adapter



我正在实现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在第二页中添加第一页的所有项目,在第三页中添加第一页的所有项目,然后遵循模式。

希望对你有所帮助

最新更新