我有一个大小为7x7的网格视图,在每个项目位置随意放大图像;从7个图像(7个彩色球图像)的阵列中选择..现在我想要计算特定图像在网格视图中显示的次数..我们可以说网格视图中显示红色球图像的次数。我还分配了标签并尝试计算分配给每个视图的标签值
在我的oncreate方法中使用此循环... G1是gridview对象.balloontag []用于存储标记值,toast仅用于检查我是否能够检索标记值
for( int i=0; i<G1.getCount(); i++)
{
ImageView v2= (ImageView)G1.getChildAt(i);
balloontags[i]=(Integer)v2.getTag();
Toast.makeText(Cacrballoonclass.this, "lets c tag=" +
balloontags[i], Toast.LENGTH_SHORT).show();
}
My adapter getview method
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
ImageView balloonimageview;
if(arg1==null){
balloonimageview = new ImageView(ballooncontext);
balloonimageview.setLayoutParams(new GridView.LayoutParams(75,75));
balloonimageview.setScaleType(ImageView.ScaleType.CENTER_CROP);
balloonimageview.setPadding(7, 7, 7, 7);
} else {
balloonimageview = (ImageView)arg1;
}
//lets inflate balloon randomly
int rballoon = new Random().nextInt(ballooninstruct.length);
balloonimageview.setImageResource(balloonthumbs[rballoon]);
balloonimageview.setTag(balloonthumbs[rballoon]);
return balloonimageview;
}
答案 0 :(得分:0)
我要做的是修改Gridview的适配器来保存Gridview项目的附加信息,比如id / tag,当我需要计算项目时,我会用数据上的HashMap来做适配器的内容,而没有Gridview本身。
答案 1 :(得分:0)
for(int k=0; k<G1.getChildCount(); k++)
{
ImageView ballcountview = (ImageView)G1.getChildAt(k);
Integer b = (Integer)ballcountview.getTag();
if(balloon_myid==b)
{
b_count++;
}
} //for loop ends
我通过遍历每个项目并检索分配的标签解决了我的问题,如果匹配,则计数递增。