0

我正在实现 FlipBoard 类型的视图,其中 FlipAdapter 有多个页面,其中有 getView() 我正在添加另一个带有适配器的列表视图并放置 onitemclickListener ,如下面的代码所示。我的问题是点击监听器正在处理第二页的页面项目,而显示的视图是第一页

例如:第 1 项、第 2 项、第 3 项在第 1 页中,第 4 项第 5 项第 6 项在第 2 页中。当您单击第 1 项时,实际上单击了第 2 页中的第 4 项。

找不到任何帮助将不胜感激的原因。

@Override public 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);
    }
};  
4

1 回答 1

1

您将相同的位置传递给

  mCurrentPageAdapter = new PageListAdapter(mContext, position);

在第一页中,您对第 1 项的意图是正确的,但在第二页中创建了新片段,因此位置也是 1 并从头开始,因此在每页中按项目数添加位置,例如在第一页中添加第二页中的零由第一页的所有项目添加,在第三页中由第一页和第二页的所有项目添加遵循模式。

希望能帮到你

于 2014-08-05T14:24:55.950 回答