android – 按项目位置在GridView中设置背景

android – 按项目位置在GridView中设置背景,第1张

概述我想在GridView中更改特定项目的背景颜色(按位置). gridview.getChildAt(1).setBackgroundResource(android.R.drawable.btn_default); 不起作用. 如果我在OnClickListener中使用它,它的工作原理: public void onItemClick(AdapterView<?> parent, View vi 我想在GrIDVIEw中更改特定项目的背景颜色(按位置).

grIDvIEw.getChildAt(1).setBackgroundResource(androID.R.drawable.btn_default);

不起作用.

如果我在OnClickListener中使用它,它的工作原理:

public voID onItemClick(AdapterVIEw<?> parent,VIEw vIEw,int position,long ID) {    vIEw.setBackgroundResource(androID.R.drawable.btn_default);}

但我想在没有点击的情况下改变它.

编辑

ImageAdapter:

public class ImageAdapter extends BaseAdapter {private final String TAG = getClass().toString();private Context mContext;public ImageAdapter(Context c) {    mContext = c;}public int getCount() {    return mThumbIDs.length;}public Object getItem(int position) {    return null;}public long getItemID(int position) {    return 0;}public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) {    ImageVIEw imageVIEw;    if (convertVIEw == null) {  // if it's not recycled,initialize some attributes        imageVIEw = new ImageVIEw(mContext);        imageVIEw.setLayoutParams(new GrIDVIEw.LayoutParams(85,85));        imageVIEw.setScaleType(ImageVIEw.ScaleType.CENTER_CROP);        imageVIEw.setpadding(8,8,8);    } else {        imageVIEw = (ImageVIEw) convertVIEw;    }    parent.getChildAt(1).setBackgroundcolor(color.RED);    imageVIEw.setimageResource(mThumbIDs[position]);    return imageVIEw;}

活动:

final GrIDVIEw grIDvIEw = (GrIDVIEw) vIEw.findVIEwByID(R.ID.grIDVIEw);grIDvIEw.setAdapter(new ImageAdapter(MainActivity.this));grIDvIEw.setSelection(0);    grIDvIEw.setonItemClickListener(new AdapterVIEw.OnItemClickListener() {    VIEw prevIoUs = null;    @OverrIDe    public voID onItemClick(AdapterVIEw<?> parent,long ID) {            if(prevIoUs == vIEw) {                vIEw.setBackgroundResource(androID.R.drawable.btn_default);            } else {                vIEw.setBackgroundResource(androID.R.drawable.btn_default);                if(prevIoUs != null) prevIoUs.setBackgroundResource(0);                prevIoUs =  vIEw;            }        }    });

XML:

<GrIDVIEw    androID:ID="@+ID/grIDVIEw"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    androID:gravity="center"    androID:numColumns="4" ></GrIDVIEw>
解决方法 在你的getVIEw()中使用它,看看你的背景是否有变化:

grIDVIEw.getChildAt(position).setBackgroundcolor(color.RED);

不要忘记在getVIEw()上使用@OverrIDe:

@OverrIDepublic VIEw getVIEw(int position,VIEwGroup parent) {}
总结

以上是内存溢出为你收集整理的android – 按项目位置在GridView中设置背景全部内容,希望文章能够帮你解决android – 按项目位置在GridView中设置背景所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1127416.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存