public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
// TODO Auto-generated method stub
sImageView = (ImageView) arg0.getItemAtPosition(arg2);
Intent imageIntent = new Intent(MainActivity.this,
SelectImageActivity.class);
startActivity(imageIntent);
                           }
我的目的是 通过点击GridView中的图片获取ImageView 可是在sImageView = (ImageView) arg0.getItemAtPosition(arg2)这个地方 报出异常  java.lang.ClassCastException: 不知道是怎么回事 难道是代码写法错了????????????请高手指教?????????????

解决方案 »

  1.   

    当然不对啊,GridView的每一项并不是由ImageView直接组成的,你可以用遍历的方式获得子元素并判断是否是ImageView
      

  2.   

    遍历案例:
    http://blog.csdn.net/aminfo/article/details/7796401
        /**
         * 改变字体
         * @param v
         * @param fontSize
         */
        public void setFontSize(View v, float fontSizeValue)
        {
         if(v instanceof TextView)
    {
    ((TextView) v).setTextSize(fontSizeValue);
    }
    else if(v instanceof EditText)
    {
    ((EditText) v).setTextSize(fontSizeValue);
    }
    else if(v instanceof Button)
    {
    ((Button) v).setTextSize(fontSizeValue);
    }
    else
    {
    int vChildCount = ((ViewGroup) v).getChildCount();
         for(int i=0; i<vChildCount; i++)
         {
         View v1 = ((ViewGroup) v).getChildAt(i);
         setFontSize(v1, fontSizeValue);
         }
    }
        }
      

  3.   

        public void getImageView(View v)
        {    
    if(v instanceof ImageView)
         {
         sImageView = v;
         }
         else if(v instanceof TextView || v instanceof EditText || v instanceof Button)
    {
    }
    else
    {
    int vChildCount = ((ViewGroup) v).getChildCount();
        for(int i=0; i<vChildCount; i++)
        {
        View v1 = ((ViewGroup) v).getChildAt(i);
    getImageView(v1);
        }
    }
        }然后在onItemClick里面
    getImageView(arg1);