简单语法错误

时间:2013-11-01 21:55:49

标签: android syntax-error

我收到一个简单的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) {

用于我的公共静态位图。

我意识到这可能是我的一个简单的输入错误,但我无法找到我需要输入分号的位置。

1 个答案:

答案 0 :(得分: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;
   }

我尽我所能向你展示你的格式如何,所以如果你知道你的程序是如何工作的,那么你将不得不修复一些不应该成问题的事情。 1}}传递给方法。此外,您的params内显示return v,但不应该出现onClick()。这让我觉得你可能会在另一个函数中放入onClick(),而这个函数会返回View,例如getView()这不正确。

另一件事是,您的方法将Context作为param,但如果它位于Activity内并且从Activity调用,那么您不需要Context变量,您只需使用Activity Context