0

FlipAdapter に getView() を持つ複数のページがある FlipBoard のようなビューを実装しています。これには、アダプターを使用して別のリストビューを追加し、以下のコードに示すように onitemclickListener を配置しています。私の問題は、表示されているビューが最初のページであるのに対し、クリックリスナーが2番目のページであるページアイテムで動作していることです

例: item1 、 item 2 、 item 3 は page 1 にあり、 item 4 item 5 item 6 は page 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 = 新しい 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の意図は1つで正しいですが、ページ2では新しいフラグメントが作成されるため、位置も1で最初から開始されるため、各ページのアイテムの数で位置を追加します。たとえば、ページ1で追加しますページ 2 のゼロはページ 1 のすべての項目を追加し、ページ 3 ではページ 1 のすべての項目を追加し、2 はパターンに従います。

あなたを助けてほしい

于 2014-08-05T14:24:55.950 に答える