yinxiaopei
懒洋洋大人
2015-06-24 06:57
采纳率: 75%
浏览 2.3k

android gridview+viewpager,根据 position改变item背景。

android gridview+viewpager,怎样根据setOnItemClickListener position改变item背景。
viewpager是循环加入的。
activity里
for (i = 0; i < videoNum / 4; i++) {//我这里的videoNum是20
view = getActivity().getLayoutInflater().inflate(
R.layout.fragment_four_video, null);
if (viewList.size() < (videoNum / 4)) {
viewList.add(view);

            gridView = (GridView) view.findViewById(R.id.gv);
            mAdapter = new BaseMoreAdapter(getActivity(), 2, 2,
                    displaychannels, i);
            gridView.setAdapter(mAdapter);
            gridView.setSelection(0);
            gridView.setOnItemClickListener(onItemClick);
        }
    }
    mVpAdapter = new ViewPagerAdapter(viewList);
    mVPager.setAdapter(mVpAdapter);

    在点击事件里调用了适配器里的方法更换背景
    private OnItemClickListener onItemClick = new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int position,
            long arg3) {
        mAdapter.setSeclection(position);
        mAdapter.notifyDataSetChanged();}

        adapter下
        public void setSeclection(int position) {
    clickTemp = position;
}

adapter getview方法里
if (clickTemp == position) {
        viewHolder.mRlContent.setBackgroundResource(R.drawable.a);
    } else {
        viewHolder.mRlContent.setBackgroundResource(R.drawable.b);
    }

    这样写的结果是,因为循环的关系每次都是操作了最后一页,怎样可以更换viewpager当前页的gridview的item的背景。
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • yinxiaopei
    懒洋洋大人 2015-06-24 08:44
    已采纳

    问题以解决。谢谢回答。

    点赞 评论
  • piziacai2008
    piziacai2008 2015-06-24 07:12

    代码有点乱

    item点击事件
    private OnItemClickListener onItemClick = new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int position,
    long arg3) {
    //选中的行号
    clickTemp = position;
    //刷新gridview
    mAdapter.notifyDataSetChanged();

    }

    adapter getview方法里
    if (clickTemp == position) {
    viewHolder.mRlContent.setBackgroundResource(R.drawable.a);
    } else {
    viewHolder.mRlContent.setBackgroundResource(R.drawable.b);
    }
    这样,每次点击一个ITEM,都会走adapter的getview,把选中的图片设置成R.drawable.a

    点赞 评论
  • crazy1235
    月盡天明 2015-06-28 05:58
    点赞 评论

相关推荐