Android-如何计算gridview中重复的项目

时间:2014-02-24 07:29:33

标签: android gridview

我有一个大小为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;
    }

2 个答案:

答案 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

我通过遍历每个项目并检索分配的标签解决了我的问题,如果匹配,则计数递增。