懒洋洋大人 2015-06-24 06:57 采纳率: 75%
浏览 2329
已采纳

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条回答 默认 最新

  • 懒洋洋大人 2015-06-24 08:44
    关注

    问题以解决。谢谢回答。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 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

    评论
  • 月盡天明 博客专家认证 2015-06-28 05:58
    关注
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 电脑锁屏时vba运行SAP,excel数据不能复制到SAP
  • ¥50 74LS系列 74LS00 74LS04设计一个RS485电路(关键词-差分)
  • ¥30 各位help写一下代码
  • ¥15 在运行SDEdit模型下载不了
  • ¥15 求51控制l298n驱动的小车中超声波避障怎么写
  • ¥15 电脑连上WIFI却用不了
  • ¥30 MATLAB在RLC电路的固有响应和阶跃响应GUI仿真报告
  • ¥15 hyper-v出现的问题
  • ¥15 有能用的可加酬金,求可以批量下载懒人听书的软件,能登录自己帐号的。
  • ¥100 高博一起做RGB-D SLAM(5)VO无法出visualisation问题