2013-11-01 89 views
0

我得到一個簡單的santax錯誤,我無法找到插入(;)的區域,就像它要求我一樣。簡單語法錯誤

@Override 
       public void onClick(View v) { 
        if (addCheckbox.isChecked()) { 
         System.out.println("Checked"); 
         PackageManager pm = mContext.getPackageManager(); 
         Drawable icon = null; 
         try { 
          icon = pm 
            .getApplicationIcon(entry.packageName); 
         } catch (NameNotFoundException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 
         Drawable default_icon = pm.getDefaultActivityIcon(); 
         if (icon instanceof BitmapDrawable 
           && default_icon instanceof BitmapDrawable) { 
          BitmapDrawable icon_bd = (BitmapDrawable) icon; 
          Bitmap icon_b = icon_bd.getBitmap(); 
          BitmapDrawable default_bd = (BitmapDrawable) pm 
            .getDefaultActivityIcon(); 
          Bitmap default_b = default_bd.getBitmap(); 
          if (icon_b == default_b) { 
           // It's the default icon 
           public static Bitmap scaleDownBitmap(Bitmap default_b, int newHeight, Context c) { 

            final float densityMultiplier = context.getResources().getDisplayMetrics().density; 

            int h= (int) (newHeight*densityMultiplier); 
            int w= (int) (h * default_b.getWidth()/((double) default_b.getHeight())); 

            default_b=Bitmap.createScaledBitmap(default_b, w, h, true); 

            return default_b; 
           } 

           ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
           default_b.compress(Bitmap.CompressFormat.PNG, 100, stream); 
           byte[] byteArray = stream.toByteArray(); 

           Intent intent = new Intent(v.getContext(), GridView.class); 
           intent.putExtra("picture", byteArray); 
           v.getContext().startActivity(intent); 
          } 
         } 
        } else { 
         System.out.println("Un-Checked"); 
        } 

       } 
      }); 

    // return view 
    return v; 
} 

我就在這行錯誤:

public static Bitmap scaleDownBitmap(Bitmap default_b, int newHeight, Context c) { 

我的公共靜態位圖。

我意識到這可能是我的一個簡單的打字錯誤,但我只是無法找到我需要輸入分號的位置。

+0

您正試圖在代碼塊的中間定義一個方法... – alfasin

回答

0

您正在嘗試聲明此方法

public static Bitmap scaleDownBitmap(Bitmap default_b, int newHeight, Context c) { 

內的另一個方法(您onClick())。如果這是您正在嘗試執行的操作,請將此方法移到onClick()之外並從onClick()中調用該方法。

@Override 
public void onClick(View v) 
{ 
    if (addCheckbox.isChecked()) 
    { 
     ... 
    if (icon_b == default_b) 
    { 
     // It's the default icon 
     scaleDownBitmap(default_b, someInt, v.getContext()); 
     // more code 
     }); 

public static Bitmap scaleDownBitmap(Bitmap default_b, int newHeight, Context c) { 

    final float densityMultiplier = context.getResources().getDisplayMetrics().density; 

    int h= (int) (newHeight*densityMultiplier); 
    int w= (int) (h * default_b.getWidth()/((double) default_b.getHeight())); 

    default_b=Bitmap.createScaledBitmap(default_b, w, h, true); 

    return default_b; 
    } 

我也盡我所能向你展示它的外觀與你有那麼你將不得不解決一些事情不應該是一個問題,如果你知道你的程序是怎麼想的工作,例如格式化作爲params要通過的方法。另外,您的onClick()中有一個return v,看起來不應該在那裏。這讓我覺得你可能在另一個函數裏面有你的onClick(),這個函數返回View,比如getView()這是不對的。

另一件事是,你的方法需要Contextparam,但如果它是一個Activity內,並從Activity叫那麼你並不需要一個Context變量,你可以只使用Activity Context