Listview onItemClickListener问题适配器中的适配器

时间:2014-08-05 13:47:07

标签: android listview android-listview flipview

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

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

无法找到为什么会有任何帮助。

@覆盖     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);
    }
};  

1 个答案:

答案 0 :(得分:1)

您将相同的位置传递给

  mCurrentPageAdapter = new PageListAdapter(mContext, position);

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

希望能帮助你

相关问题