2 yinxiaopei yinxiaopei 于 2015.06.24 14:57 提问

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
yinxiaopei   2015.06.24 16:44
已采纳

问题以解决。谢谢回答。

piziacai2008
piziacai2008   2015.06.24 15: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

piziacai2008
piziacai2008 不论你想更改item里那个子空间,都得通过getview方法,只要你记住所选的行索引,再在getview方法里更改就应该没有问题的
2 年多之前 回复
yinxiaopei
yinxiaopei 这样是不行的,。,。我想问的主要是因为循环的原因,怎么找出每个页面下的子控件,,
2 年多之前 回复
crazy1235
crazy1235   Ds   Rxr 2015.06.28 13:58
Csdn user default icon
上传中...
上传图片
插入图片